The goal of this capstone project was to set a baseline linear regression for predicting NFL statistics. The use of the analysis would be to project player performance and see if the team I am working with needs to consider making adjustments given various factors of the upcoming game/season.
I went to the website http://armchairanalysis.com/data.php. I have a subscription to the database, so I connected into it via SQL. I downloaded the historical database onto my hard drive, and mapped it in MySQL.
I then queried the DB to get the fields I would need. This operation took extensive time, so once it ran, I exported to a csv file, then read the csv into R.
suppressMessages(library(dplyr))
## Warning: package 'dplyr' was built under R version 3.3.2
suppressMessages(library(tidyr))
## Warning: package 'tidyr' was built under R version 3.3.2
suppressMessages(library(ggplot2))
## Warning: package 'ggplot2' was built under R version 3.3.2
suppressMessages(library(reshape2))
## Warning: package 'reshape2' was built under R version 3.3.2
suppressMessages(library(caTools))
## Warning: package 'caTools' was built under R version 3.3.3
suppressMessages(library(caret))
## Warning: package 'caret' was built under R version 3.3.3
suppressMessages(library(GGally))
## Warning: package 'GGally' was built under R version 3.3.3
suppressMessages(library(randomForest))
## Warning: package 'randomForest' was built under R version 3.3.3
suppressMessages(library(e1071))
## Warning: package 'e1071' was built under R version 3.3.3
nfl_data <- read.csv("NFL_offense.csv")
The data is pretty clean from armchairanalyis, fivethirtyeight.com uses this website for its sports data, so it is a pretty reputable site.
I felt there were pieces of data either missing, or needing cleaning up. This brought on the fun process of cleaning and tidying the data.
From a qualitative perspective, we know that field turf and ideal temperatures are the least inhibitive towards speed, according to players themselves. I wanted to identify extremes and hinderences.
I replaced all “NULL” temp fields with a generic “room” temperature assumption.
cold_weather and hot_weather were fields created to identify extreme ends of the temperature spectrum, and see if they have an impact on play
#make all null temperatures at game time "room" temperature
nfl_data$temp[nfl_data$temp == "NULL"] <- 70
nfl_data$temp <- as.integer(nfl_data$temp)
#highlight temp extremes
nfl_data <- mutate(nfl_data, cold_weather= ifelse(temp < 45, 1,0))
nfl_data <- mutate(nfl_data, hot_weather= ifelse(temp > 85, 1,0))
#weather factors
nfl_data <- mutate(nfl_data, grass_1 = ifelse(surf == "DD GrassMaster" | surf == "Grass",
1,0))
nfl_data <- mutate(nfl_data, bad_weather_1 = ifelse(cond == "Light Rain" |
cond == "Rain" |
cond == "Flurries" |
cond == "Snow" |
cond == "Foggy" |
cond == "Windy" |
cond == "Hazy" |
cond == "Thunderstorms"|
cond == "Light Snow" |
cond == "Light Showers" ,1,0))
Do players play better at home?
#identify home team
nfl_data$h <- as.character(nfl_data$h)
nfl_data$team <- as.character(nfl_data$team)
nfl_data <- mutate(nfl_data, home_team_1= ifelse(h == team, 1,0))
Ignoring player stats, does the position matter
#identify position
nfl_data <- mutate(nfl_data, is_WR = ifelse(pos1 == "WR", 1,0))
nfl_data <- mutate(nfl_data, is_TE = ifelse(pos1 == "TE", 1,0))
nfl_data <- mutate(nfl_data, is_RB = ifelse(pos1 == "RB", 1,0))
nfl_data <- mutate(nfl_data, is_QB = ifelse(pos1 == "QB", 1,0))
Every year players get older, so we want to know “Does father time impact player performance?”
#age
nfl_data <- mutate(nfl_data, age = year - yob)
The NFL combine is an event where prospective new players work out for the entire league to see. Their physical measurements are taken, and people find merit in this event. I wanted to see if these stats had any impact on player performance. Not all players attend the combine. For the fields where there are zeroes for the combine stat, I took the average for all non-zero stats for that position. This basically implies if you didn’t attend the combine, your stats are middle of the road.
#replace 0 forty with avg for position
nfl_data <- nfl_data %>%
group_by(pos1)%>%
mutate(forty1 = ifelse(forty == 0, mean(forty[forty>0]), forty))
#replace 0 vertical with average for position
nfl_data <- nfl_data %>%
group_by(pos1)%>%
mutate(vertical1 = ifelse(vertical == 0, mean(vertical[vertical>0]), vertical))
#replace 0 arm length with formula for 40% of height is arm
nfl_data$arm <- ifelse(nfl_data$arm == 0, nfl_data$height*0.4, nfl_data$arm)
nfl_data <- nfl_data %>%
group_by(pos1)%>%
mutate(shuttle1 = ifelse(shuttle == 0, mean(shuttle[shuttle>0]), shuttle))
nfl_data <- nfl_data %>%
group_by(pos1)%>%
mutate(cone1 = ifelse(cone == 0, mean(cone[cone>0]), cone))
I created fields for teams (1 if player plays for that team in the header 0 if it doesn’t). I also cleaned up one team: The St Louis/LA Rams. The Rams moved in 2016 to LA, so the conditions of stadium changed. I combined the field into a single field.
#clean teams and give each team a field
nfl_data <- mutate(nfl_data, Teams = ifelse(team == "STL" | team == "LA", "STL/LA",team))
nfl_data <- mutate(nfl_data, ARI = ifelse(Teams == "ARI",1,0))
nfl_data <- mutate(nfl_data, ATL = ifelse(Teams == "ATL",1,0))
nfl_data <- mutate(nfl_data, BAL = ifelse(Teams == "BAL",1,0))
nfl_data <- mutate(nfl_data, BUF = ifelse(Teams == "BUF",1,0))
nfl_data <- mutate(nfl_data, CAR = ifelse(Teams == "CAR",1,0))
nfl_data <- mutate(nfl_data, CHI = ifelse(Teams == "CHI",1,0))
nfl_data <- mutate(nfl_data, CIN = ifelse(Teams == "CIN",1,0))
nfl_data <- mutate(nfl_data, CLE = ifelse(Teams == "CLE",1,0))
nfl_data <- mutate(nfl_data, DAL = ifelse(Teams == "DAL",1,0))
nfl_data <- mutate(nfl_data, DEN = ifelse(Teams == "DEN",1,0))
nfl_data <- mutate(nfl_data, DET = ifelse(Teams == "DET",1,0))
nfl_data <- mutate(nfl_data, GB = ifelse(Teams == "GB",1,0))
nfl_data <- mutate(nfl_data, HOU = ifelse(Teams == "HOU",1,0))
nfl_data <- mutate(nfl_data, IND = ifelse(Teams == "IND",1,0))
nfl_data <- mutate(nfl_data, JAC = ifelse(Teams == "JAC",1,0))
nfl_data <- mutate(nfl_data, KC = ifelse(Teams == "KC",1,0))
nfl_data <- mutate(nfl_data, MIA = ifelse(Teams == "MIA",1,0))
nfl_data <- mutate(nfl_data, MINN = ifelse(Teams == "MIN",1,0))
nfl_data <- mutate(nfl_data, NE = ifelse(Teams == "NE",1,0))
nfl_data <- mutate(nfl_data, NOR = ifelse(Teams == "NO",1,0))
nfl_data <- mutate(nfl_data, NYG = ifelse(Teams == "NYG",1,0))
nfl_data <- mutate(nfl_data, NYJ = ifelse(Teams == "NYJ",1,0))
nfl_data <- mutate(nfl_data, OAK = ifelse(Teams == "OAK",1,0))
nfl_data <- mutate(nfl_data, PHI = ifelse(Teams == "PHI",1,0))
nfl_data <- mutate(nfl_data, PIT = ifelse(Teams == "PIT",1,0))
nfl_data <- mutate(nfl_data, SD = ifelse(Teams == "SD",1,0))
nfl_data <- mutate(nfl_data, SEA = ifelse(Teams == "SEA",1,0))
nfl_data <- mutate(nfl_data, SF = ifelse(Teams == "SF",1,0))
nfl_data <- mutate(nfl_data, STL = ifelse(Teams == "STL/LA",1,0))
nfl_data <- mutate(nfl_data, TB = ifelse(Teams == "TB",1,0))
nfl_data <- mutate(nfl_data, TEN = ifelse(Teams == "TEN",1,0))
nfl_data <- mutate(nfl_data, WAS = ifelse(Teams == "WAS",1,0))
For receiving, I wanted to get every players average: * yards * receptions * targets * touchdowns
I also wanted to get every position average, and average for team. Rationale for at least having that info is this: Compare player to team to league wide position
#calculate the averages by player, position, and team
#receiving
nfl_data <- nfl_data %>%
group_by(player.1)%>%
mutate(avg_recy_plyr = mean(recy))
nfl_data <- nfl_data %>%
group_by(pos1)%>%
mutate(avg_recy_pos = mean(recy))
nfl_data <- nfl_data %>%
group_by(Teams)%>%
mutate(avg_recy_team = mean(recy))
nfl_data <- nfl_data %>%
group_by(player.1)%>%
mutate(avg_rec_plyr = mean(rec))
nfl_data <- nfl_data %>%
group_by(pos1)%>%
mutate(avg_rec_pos = mean(rec))
nfl_data <- nfl_data %>%
group_by(Teams)%>%
mutate(avg_rec_team = mean(rec))
nfl_data <- nfl_data %>%
group_by(player.1)%>%
mutate(avg_trg_plyr = mean(trg))
nfl_data <- nfl_data %>%
group_by(pos1)%>%
mutate(avg_trg_pos = mean(trg))
nfl_data <- nfl_data %>%
group_by(Teams)%>%
mutate(avg_trg_team = mean(trg))
nfl_data <- nfl_data %>%
group_by(player.1)%>%
mutate(avg_rectd_plyr = mean(tdrec))
nfl_data <- nfl_data %>%
group_by(pos1)%>%
mutate(avg_rectd_pos = mean(tdrec))
nfl_data <- nfl_data %>%
group_by(Teams)%>%
mutate(avg_rectd_team = mean(tdrec))
I followed a similar process from up above.
The stats I was looking for the mean for were: * rushing attempts * rushing yards * fumbles
#running
nfl_data <- nfl_data %>%
group_by(player.1)%>%
mutate(avg_rbra_plyr = mean(ra))
nfl_data <- nfl_data %>%
group_by(Teams)%>%
mutate(avg_rbra_team = mean(ra))
nfl_data <- nfl_data %>%
group_by(pos1)%>%
mutate(avg_rbra_pos = mean(ra))
nfl_data <- nfl_data %>%
group_by(player.1)%>%
mutate(avg_rbry_plyr = mean(ry))
nfl_data <- nfl_data %>%
group_by(Teams)%>%
mutate(avg_rbry_team = mean(ry))
nfl_data <- nfl_data %>%
group_by(pos1)%>%
mutate(avg_rbry_pos = mean(ry))
nfl_data <- nfl_data %>%
group_by(player.1)%>%
mutate(avg_fuml_plyr = mean(fuml))
nfl_data <- nfl_data %>%
group_by(Teams)%>%
mutate(avg_fuml_team = mean(fuml))
nfl_data <- nfl_data %>%
group_by(pos1)%>%
mutate(avg_fuml_pos = mean(fuml))
nfl_data <- nfl_data %>%
group_by(player.1)%>%
mutate(avg_tdr_plyr = mean(tdr))
nfl_data <- nfl_data %>%
group_by(pos1)%>%
mutate(avg_tdr_pos = mean(tdr))
nfl_data <- nfl_data %>%
group_by(Teams)%>%
mutate(avg_tdr_team = mean(tdr))
I followed a similar process from up above.
The stats I was looking for the mean for were: * passing yards * passing attempts * passing completions * passing touchdowns * interceptions
#passing
nfl_data <- nfl_data %>%
group_by(player.1)%>%
mutate(avg_qbpy_plyr = mean(py))
nfl_data <- nfl_data %>%
group_by(Teams)%>%
mutate(avg_qbpy_team = mean(py))
nfl_data <- nfl_data %>%
group_by(pos1)%>%
mutate(avg_qbpy_pos = mean(py))
nfl_data <- nfl_data %>%
group_by(player.1)%>%
mutate(avg_qbpc_plyr = mean(pc))
nfl_data <- nfl_data %>%
group_by(Teams)%>%
mutate(avg_qbpc_team = mean(pc))
nfl_data <- nfl_data %>%
group_by(pos1)%>%
mutate(avg_qbpc_pos = mean(pc))
nfl_data <- nfl_data %>%
group_by(player.1)%>%
mutate(avg_qbints_plyr = mean(ints))
nfl_data <- nfl_data %>%
group_by(Teams)%>%
mutate(avg_qbints_team = mean(ints))
nfl_data <- nfl_data %>%
group_by(pos1)%>%
mutate(avg_qbints_pos = mean(ints))
nfl_data <- nfl_data %>%
group_by(player.1)%>%
mutate(avg_qbtdp_plyr = mean(tdp))
nfl_data <- nfl_data %>%
group_by(Teams)%>%
mutate(avg_qbtdp_team = mean(tdp))
nfl_data <- nfl_data %>%
group_by(pos1)%>%
mutate(avg_qbtdp_pos = mean(tdp))
nfl_data <- nfl_data %>%
group_by(player.1)%>%
mutate(avg_qbpa_plyr = mean(pa))
nfl_data <- nfl_data %>%
group_by(Teams)%>%
mutate(avg_qbpa_team = mean(pa))
nfl_data <- nfl_data %>%
group_by(pos1)%>%
mutate(avg_qbpa_pos = mean(pa))
I wanted to learn a little about the data. I had approximately 100 fields to choose from, so it is hard to infer if there were any correlations or other patterns off hand. I built a subset of the fields I wanted to explore. I named this subset: nfl_data_fields
I then created a correlation matrix:
nfl_data_fields<- subset(nfl_data, select = c("height", "weight", "cold_weather", "hot_weather",
"home_team_1", "temp",
"forty1", "vertical1", "ARI", "ATL", "BAL", "BUF",
"CAR", "CHI", "CIN", "CLE", "DAL", "DEN", "DET", "GB", "HOU", "IND",
"JAC", "KC", "MIA", "MINN", "NE", "NOR", "NYG", "NYJ", "OAK", "PHI", "PIT",
"SD", "SEA", "STL", "TB", "TEN", "WAS",
"avg_recy_plyr","avg_recy_pos","avg_recy_team","avg_rec_plyr","avg_rec_pos",
"avg_rec_team", "avg_trg_plyr","avg_trg_pos","avg_trg_team","avg_rectd_plyr",
"avg_rectd_pos","avg_rectd_team","avg_tdr_plyr","avg_tdr_pos","avg_tdr_team",
"avg_rbra_plyr","avg_rbra_pos", "avg_rbra_team","avg_rbry_plyr","avg_rbry_pos",
"avg_rbry_team","avg_fuml_plyr","avg_fuml_pos", "avg_fuml_team","avg_qbpy_plyr",
"avg_qbpy_pos", "avg_qbpy_team","avg_qbpa_plyr","avg_qbpa_pos","avg_qbpa_team",
"avg_qbpc_plyr","avg_qbpc_pos", "avg_qbpc_team","avg_qbints_plyr", "avg_qbints_pos",
"avg_qbints_team","avg_qbtdp_plyr","avg_qbtdp_pos","avg_qbtdp_team","grass_1",
"bad_weather_1"))
cor_nfl <- cor(nfl_data_fields)
If you were to run cor_nfl, the print out is extremely difficult to read and gets cut off because of it’s size.
I decided a simpler view should be created, so I created an image of the matrix
image(cor_nfl)
This gives a pretty interesting view of the data, but is still hard to interpret. That being said, it was on the right path.
I then used qplot to get a better view of the data. With qplot I can control the colors, and since correlation matrices range from -1 to 1, setting the bookends of the color spectrum based on the values of the correlation would give me a very indicative heatmap
qplot(x=Var1, y=Var2, data=melt(cor(nfl_data_fields)), fill=value, geom="tile")+
scale_fill_gradient2(limits=c(-1, 1))+
theme(axis.text.x = element_text(angle = 90, hjust = 1, size = 5),
axis.text.y = element_text(size = 5))
There are strong relationships where we calculated general averages for the position, teams and players. That is not surprising since a stat like rushing will have strong relationships with how many attempts you make at rushing the ball. Typically, if you are running the ball more, you should see more yards. Obvious, but this confirms the correlation.
We then have to remove the highly correlated data fields.
highlyCor_nfl_data_fields1 <- findCorrelation(cor_nfl, cutoff = .8)
highlyCor_nfl_data_fields1
## [1] 44 47 62 41 50 70 64 67 77 65 71 68 74 73 46 40 43 42 66 45 72 51 69
## [24] 53 60 56 52 55 6
highlyCor_nfl_data_fields2 <- findCorrelation(cor_nfl, cutoff = .85)
highlyCor_nfl_data_fields2
## [1] 44 47 62 41 50 70 64 67 77 65 71 68 74 73 46 40 42 66 45 72 51 69 53
## [24] 60 56 52 55
highlyCor_nfl_data_fields3 <- findCorrelation(cor_nfl, cutoff = .9)
highlyCor_nfl_data_fields3
## [1] 44 47 62 41 70 64 67 77 65 71 68 74 76 46 40 42 66 45 72 51 69 53 56
## [24] 52 55
filtered_nfl_data_fields <-nfl_data_fields
filtered_nfl_data_fields <- filtered_nfl_data_fields[,-highlyCor_nfl_data_fields1]
filtered_nfl_data_fields
## # A tibble: 39,255 × 51
## height weight cold_weather hot_weather home_team_1 forty1 vertical1
## <int> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 73 217 0 0 0 4.400000 38.50000
## 2 70 209 0 0 0 4.550000 34.80631
## 3 73 190 0 0 0 4.580000 38.00000
## 4 74 225 0 0 0 4.794693 31.82285
## 5 72 189 0 0 1 4.410000 36.50000
## 6 72 209 0 0 1 4.830000 32.00000
## 7 71 200 0 0 1 4.410000 36.07315
## 8 75 248 0 0 1 4.670000 37.50000
## 9 73 190 0 0 0 4.463801 36.07315
## 10 72 180 0 0 0 4.463801 36.07315
## # ... with 39,245 more rows, and 44 more variables: ARI <dbl>, ATL <dbl>,
## # BAL <dbl>, BUF <dbl>, CAR <dbl>, CHI <dbl>, CIN <dbl>, CLE <dbl>,
## # DAL <dbl>, DEN <dbl>, DET <dbl>, GB <dbl>, HOU <dbl>, IND <dbl>,
## # JAC <dbl>, KC <dbl>, MIA <dbl>, MINN <dbl>, NE <dbl>, NOR <dbl>,
## # NYG <dbl>, NYJ <dbl>, OAK <dbl>, PHI <dbl>, PIT <dbl>, SD <dbl>,
## # SEA <dbl>, STL <dbl>, TB <dbl>, TEN <dbl>, WAS <dbl>,
## # avg_trg_team <dbl>, avg_rectd_plyr <dbl>, avg_tdr_team <dbl>,
## # avg_rbra_team <dbl>, avg_rbry_plyr <dbl>, avg_rbry_pos <dbl>,
## # avg_fuml_plyr <dbl>, avg_fuml_team <dbl>, avg_qbints_team <dbl>,
## # avg_qbtdp_plyr <dbl>, avg_qbtdp_team <dbl>, grass_1 <dbl>,
## # bad_weather_1 <dbl>
qplot(x=Var1, y=Var2, data=melt(cor(filtered_nfl_data_fields)), fill=value, geom="tile")+
scale_fill_gradient2(limits=c(-1, 1))+
theme(axis.text.x = element_text(angle = 90, hjust = 1, size = 5),
axis.text.y = element_text(size = 5))
I tested cutoffs at 0.8, 0.85, 0.9 correlation, then removed the columns that were highly correlated at the 0.8 level.
We have to set up our test and training data with preProcess:
set.seed(123)
split <- sample.split(nfl_data$recy, SplitRatio = 0.7)
TrainRecy <- subset(nfl_data, split == TRUE)
TestRecy <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(TrainRecy, method = c("center", "scale"))
trainTransformed <- predict(preProcValues, TrainRecy)
testTransformed <- predict(preProcValues, TestRecy)
We then inspect the relationships of the columns using ggpairs
ggpairs(nfl_data[,c("recy",colnames(filtered_nfl_data_fields[1:9]))])
ggpairs(nfl_data[,c("recy",colnames(filtered_nfl_data_fields[10:18]))])
ggpairs(nfl_data[,c("recy",colnames(filtered_nfl_data_fields[19:27]))])
ggpairs(nfl_data[,c("recy",colnames(filtered_nfl_data_fields[28:36]))])
ggpairs(nfl_data[,c("recy",colnames(filtered_nfl_data_fields[37:45]))])
ggpairs(nfl_data[,c("recy",colnames(filtered_nfl_data_fields[46:51]))])
Now that we are ready to train and test the data, let’s do it!
#formula for not having to write everything out
wrrecyregform <- formula(paste("recy ~ ",
paste(colnames(filtered_nfl_data_fields), collapse="+")))
#first run of the recy regression
linRegrecy <- lm(wrrecyregform, data = trainTransformed)
#updating formula to take out insignigicant values
linRegrecy2 <- update(linRegrecy, ~. -height- hot_weather - home_team_1-vertical1-BUF-DAL-DEN-GB
-NE-NOR-NYJ-SEA
-avg_trg_team-avg_tdr_team-avg_rbra_team-avg_fuml_plyr-avg_fuml_team
-avg_qbints_plyr
-avg_qbints_team-avg_qbtdp_team-bad_weather1)
#updating formulas to remove any insignificant values
linRegrecy3 <- update(linRegrecy2, ~. -JAC)
summary(linRegrecy3)
##
## Call:
## lm(formula = recy ~ weight + cold_weather + forty1 + ARI + ATL +
## BAL + CAR + CHI + CIN + CLE + DET + HOU + IND + KC + MIA +
## MINN + NYG + OAK + PHI + PIT + SD + STL + TB + TEN + WAS +
## avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_qbtdp_plyr +
## grass_1 + bad_weather_1, data = trainTransformed)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.5044 -0.4254 -0.1184 0.2391 7.5200
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.937e-15 4.841e-03 0.000 1.000000
## weight -6.762e-02 6.073e-03 -11.134 < 2e-16 ***
## cold_weather -1.885e-02 5.015e-03 -3.759 0.000171 ***
## forty1 -4.724e-02 7.051e-03 -6.701 2.11e-11 ***
## ARI 1.569e-02 5.016e-03 3.129 0.001756 **
## ATL 1.962e-02 5.024e-03 3.904 9.47e-05 ***
## BAL 1.819e-02 5.014e-03 3.628 0.000286 ***
## CAR 1.267e-02 5.031e-03 2.518 0.011819 *
## CHI 1.667e-02 5.013e-03 3.324 0.000887 ***
## CIN 1.229e-02 5.007e-03 2.455 0.014086 *
## CLE 2.934e-02 5.054e-03 5.805 6.52e-09 ***
## DET 1.563e-02 5.009e-03 3.121 0.001806 **
## HOU 2.085e-02 5.027e-03 4.149 3.36e-05 ***
## IND 1.087e-02 5.008e-03 2.171 0.029942 *
## KC 1.237e-02 5.058e-03 2.446 0.014468 *
## MIA 1.340e-02 5.010e-03 2.675 0.007469 **
## MINN 1.335e-02 5.013e-03 2.663 0.007741 **
## NYG 1.433e-02 5.010e-03 2.859 0.004248 **
## OAK 1.420e-02 5.072e-03 2.800 0.005108 **
## PHI 1.711e-02 5.008e-03 3.416 0.000636 ***
## PIT 2.404e-02 5.044e-03 4.766 1.89e-06 ***
## SD 1.377e-02 5.042e-03 2.730 0.006333 **
## STL 1.214e-02 5.021e-03 2.417 0.015636 *
## TB 1.037e-02 5.025e-03 2.064 0.039052 *
## TEN 1.028e-02 5.042e-03 2.038 0.041578 *
## WAS 1.921e-02 5.036e-03 3.815 0.000136 ***
## avg_rectd_plyr 5.394e-01 6.049e-03 89.176 < 2e-16 ***
## avg_rbry_plyr 4.649e-02 6.950e-03 6.689 2.29e-11 ***
## avg_rbry_pos -7.193e-02 7.494e-03 -9.600 < 2e-16 ***
## avg_qbtdp_plyr -4.723e-02 5.861e-03 -8.057 8.13e-16 ***
## grass_1 -1.649e-02 5.271e-03 -3.128 0.001760 **
## bad_weather_1 -9.828e-03 4.915e-03 -1.999 0.045573 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.8025 on 27452 degrees of freedom
## Multiple R-squared: 0.3567, Adjusted R-squared: 0.356
## F-statistic: 491 on 31 and 27452 DF, p-value: < 2.2e-16
Modest gains in r-square and residual standard error and we cut the variables down to just 3. R2 is not very strong 0.4277. This is an improvement (slightly) over the historical average only as the explanatory variable.
Testing the data, we see that the training set and the test set are similar. The model seems to hold up through testing
RecyPredicted <- predict(linRegrecy3, newdata = testTransformed)
SSErecy <- sum((RecyPredicted - testTransformed$recy)^2)
SSTrecy <- sum((mean(c(testTransformed$recy, trainTransformed$recy))-testTransformed$recy)^2)
r2_recy <- 1 - SSErecy/SSTrecy
r2_recy
## [1] 0.372254
rmse_recy <- sqrt(SSErecy/nrow(testTransformed))
rmse_recy
## [1] 0.7763582
Looking at the regression plots:
par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegrecy3, which = c(1,2,3,5))
The residuals vs fitted appears to be okay for the model. The normal Q-Q looks okay, however, it may have some skewness to it. The scale-location does not seem to be ideal. The red line is not smooth, and there appears to be a gap in the data. The residuals vs leverage has some values that seem extreme.
The summary statistics are below.
confint(linRegrecy3)
## 2.5 % 97.5 %
## (Intercept) -0.0094882559 0.0094882559
## weight -0.0795274473 -0.0557191232
## cold_weather -0.0286793102 -0.0090208176
## forty1 -0.0610642220 -0.0334250908
## ARI 0.0058632903 0.0255259948
## ATL 0.0097682460 0.0294637762
## BAL 0.0083622071 0.0280189326
## CAR 0.0028054154 0.0225280288
## CHI 0.0068398849 0.0264926557
## CIN 0.0024791450 0.0221055179
## CLE 0.0194316899 0.0392452933
## DET 0.0058143275 0.0254512802
## HOU 0.0110002904 0.0307047052
## IND 0.0010562904 0.0206882581
## KC 0.0024557801 0.0222837058
## MIA 0.0035838450 0.0232233998
## MINN 0.0035260161 0.0231792969
## NYG 0.0045059231 0.0241468691
## OAK 0.0042619829 0.0241443427
## PHI 0.0072919585 0.0269223314
## PIT 0.0141504048 0.0339216782
## SD 0.0038833042 0.0236481674
## STL 0.0022968544 0.0219812473
## TB 0.0005210029 0.0202187408
## TEN 0.0003920961 0.0201581502
## WAS 0.0093422705 0.0290834158
## avg_rectd_plyr 0.5275582024 0.5512702914
## avg_rbry_plyr 0.0328656806 0.0601111735
## avg_rbry_pos -0.0866224971 -0.0572471575
## avg_qbtdp_plyr -0.0587148793 -0.0357375061
## grass_1 -0.0268191284 -0.0061578226
## bad_weather_1 -0.0194620323 -0.0001935083
coef(summary(linRegrecy3))
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.937290e-15 0.004840822 -6.067751e-13 1.000000e+00
## weight -6.762329e-02 0.006073396 -1.113435e+01 9.837517e-29
## cold_weather -1.885006e-02 0.005014793 -3.758892e+00 1.710209e-04
## forty1 -4.724466e-02 0.007050617 -6.700783e+00 2.113140e-11
## ARI 1.569464e-02 0.005015867 3.128999e+00 1.755866e-03
## ATL 1.961601e-02 0.005024241 3.904274e+00 9.473462e-05
## BAL 1.819057e-02 0.005014342 3.627708e+00 2.864663e-04
## CAR 1.266672e-02 0.005031150 2.517660e+00 1.181939e-02
## CHI 1.666627e-02 0.005013333 3.324389e+00 8.872841e-04
## CIN 1.229233e-02 0.005006599 2.455226e+00 1.408576e-02
## CLE 2.933849e-02 0.005054361 5.804590e+00 6.523318e-09
## DET 1.563280e-02 0.005009298 3.120757e+00 1.805735e-03
## HOU 2.085250e-02 0.005026507 4.148507e+00 3.356579e-05
## IND 1.087227e-02 0.005008026 2.170970e+00 2.994199e-02
## KC 1.236974e-02 0.005058014 2.445573e+00 1.446845e-02
## MIA 1.340362e-02 0.005009962 2.675394e+00 7.468569e-03
## MINN 1.335266e-02 0.005013463 2.663360e+00 7.740977e-03
## NYG 1.432640e-02 0.005010317 2.859379e+00 4.247906e-03
## OAK 1.420316e-02 0.005071900 2.800363e+00 5.108079e-03
## PHI 1.710714e-02 0.005007619 3.416223e+00 6.358817e-04
## PIT 2.403604e-02 0.005043563 4.765687e+00 1.891737e-06
## SD 1.376574e-02 0.005041927 2.730253e+00 6.332615e-03
## STL 1.213905e-02 0.005021400 2.417464e+00 1.563557e-02
## TB 1.036987e-02 0.005024804 2.063737e+00 3.905207e-02
## TEN 1.027512e-02 0.005042231 2.037813e+00 4.157822e-02
## WAS 1.921284e-02 0.005035877 3.815193e+00 1.363745e-04
## avg_rectd_plyr 5.394142e-01 0.006048847 8.917638e+01 0.000000e+00
## avg_rbry_plyr 4.648843e-02 0.006950202 6.688788e+00 2.293467e-11
## avg_rbry_pos -7.193483e-02 0.007493516 -9.599609e+00 8.683028e-22
## avg_qbtdp_plyr -4.722619e-02 0.005861424 -8.057119e+00 8.125991e-16
## grass_1 -1.648848e-02 0.005270606 -3.128383e+00 1.759546e-03
## bad_weather_1 -9.827770e-03 0.004915313 -1.999419e+00 4.557289e-02
anova(linRegrecy3)
## Analysis of Variance Table
##
## Response: recy
## Df Sum Sq Mean Sq F value Pr(>F)
## weight 1 286.5 286.5 444.7939 < 2.2e-16 ***
## cold_weather 1 17.7 17.7 27.4087 1.659e-07 ***
## forty1 1 1096.0 1096.0 1701.7895 < 2.2e-16 ***
## ARI 1 1.6 1.6 2.4409 0.1182194
## ATL 1 22.2 22.2 34.5178 4.272e-09 ***
## BAL 1 0.0 0.0 0.0026 0.9592773
## CAR 1 3.4 3.4 5.2935 0.0214132 *
## CHI 1 0.0 0.0 0.0001 0.9922825
## CIN 1 0.0 0.0 0.0696 0.7919203
## CLE 1 1.6 1.6 2.4396 0.1183183
## DET 1 13.6 13.6 21.1018 4.375e-06 ***
## HOU 1 0.8 0.8 1.2155 0.2702583
## IND 1 1.2 1.2 1.9041 0.1676280
## KC 1 13.8 13.8 21.3793 3.785e-06 ***
## MIA 1 0.1 0.1 0.1325 0.7158119
## MINN 1 8.8 8.8 13.6466 0.0002211 ***
## NYG 1 7.1 7.1 11.0093 0.0009078 ***
## OAK 1 12.5 12.5 19.3499 1.092e-05 ***
## PHI 1 1.5 1.5 2.3813 0.1228075
## PIT 1 10.1 10.1 15.6244 7.745e-05 ***
## SD 1 8.7 8.7 13.5839 0.0002286 ***
## STL 1 3.6 3.6 5.6376 0.0175859 *
## TB 1 0.9 0.9 1.3868 0.2389488
## TEN 1 6.5 6.5 10.0632 0.0015142 **
## WAS 1 2.1 2.1 3.2224 0.0726498 .
## avg_rectd_plyr 1 8183.3 8183.3 12705.9907 < 2.2e-16 ***
## avg_rbry_plyr 1 0.1 0.1 0.2085 0.6479341
## avg_rbry_pos 1 47.9 47.9 74.4186 < 2.2e-16 ***
## avg_qbtdp_plyr 1 42.0 42.0 65.1375 7.268e-16 ***
## grass_1 1 6.5 6.5 10.1376 0.0014544 **
## bad_weather_1 1 2.6 2.6 3.9977 0.0455729 *
## Residuals 27452 17680.4 0.6
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
I would say overall, the model is just okay for predicting. The average yards receiving historical for the player is really the best predictor according to this analysis
Now we inspect the AIC:
#aic
aic_recy <- step(lm(wrrecyregform, data = trainTransformed), direction = "backward")
AIC appeared to be very similar to linear regression
summary(aic_recy)
##
## Call:
## lm(formula = recy ~ weight + cold_weather + forty1 + ARI + ATL +
## BAL + BUF + CAR + CHI + CIN + CLE + DAL + DEN + DET + HOU +
## IND + JAC + KC + MIA + MINN + NE + NOR + NYG + NYJ + OAK +
## PHI + PIT + SD + STL + TB + TEN + WAS + avg_rectd_plyr +
## avg_rbry_plyr + avg_rbry_pos + avg_qbtdp_plyr + grass_1 +
## bad_weather_1, data = trainTransformed)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.5030 -0.4258 -0.1160 0.2370 7.5191
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.184e-15 4.840e-03 0.000 1.000000
## weight -6.637e-02 6.101e-03 -10.878 < 2e-16 ***
## cold_weather -1.787e-02 5.057e-03 -3.534 0.000411 ***
## forty1 -4.917e-02 7.128e-03 -6.899 5.36e-12 ***
## ARI 2.526e-02 5.493e-03 4.598 4.28e-06 ***
## ATL 2.943e-02 5.518e-03 5.333 9.73e-08 ***
## BAL 2.790e-02 5.504e-03 5.069 4.02e-07 ***
## BUF 1.026e-02 5.471e-03 1.876 0.060685 .
## CAR 2.189e-02 5.476e-03 3.997 6.44e-05 ***
## CHI 2.558e-02 5.430e-03 4.712 2.47e-06 ***
## CIN 2.179e-02 5.476e-03 3.980 6.91e-05 ***
## CLE 3.847e-02 5.488e-03 7.009 2.46e-12 ***
## DAL 1.395e-02 5.488e-03 2.542 0.011022 *
## DEN 1.115e-02 5.511e-03 2.023 0.043122 *
## DET 2.515e-02 5.478e-03 4.591 4.44e-06 ***
## HOU 3.063e-02 5.518e-03 5.551 2.87e-08 ***
## IND 2.048e-02 5.489e-03 3.731 0.000191 ***
## JAC 1.675e-02 5.455e-03 3.070 0.002142 **
## KC 2.166e-02 5.507e-03 3.933 8.40e-05 ***
## MIA 2.262e-02 5.452e-03 4.148 3.36e-05 ***
## MINN 2.266e-02 5.466e-03 4.145 3.41e-05 ***
## NE 1.767e-02 5.598e-03 3.157 0.001598 **
## NOR 1.389e-02 5.574e-03 2.491 0.012734 *
## NYG 2.403e-02 5.497e-03 4.372 1.24e-05 ***
## NYJ 1.380e-02 5.491e-03 2.513 0.011972 *
## OAK 2.370e-02 5.541e-03 4.277 1.90e-05 ***
## PHI 2.610e-02 5.431e-03 4.806 1.55e-06 ***
## PIT 3.337e-02 5.496e-03 6.072 1.28e-09 ***
## SD 2.293e-02 5.475e-03 4.188 2.82e-05 ***
## STL 2.161e-02 5.486e-03 3.940 8.17e-05 ***
## TB 1.962e-02 5.470e-03 3.588 0.000334 ***
## TEN 1.955e-02 5.491e-03 3.561 0.000370 ***
## WAS 2.851e-02 5.489e-03 5.194 2.07e-07 ***
## avg_rectd_plyr 5.389e-01 6.112e-03 88.171 < 2e-16 ***
## avg_rbry_plyr 4.703e-02 6.959e-03 6.758 1.43e-11 ***
## avg_rbry_pos -7.291e-02 7.522e-03 -9.693 < 2e-16 ***
## avg_qbtdp_plyr -4.680e-02 5.874e-03 -7.967 1.69e-15 ***
## grass_1 -1.474e-02 5.432e-03 -2.715 0.006639 **
## bad_weather_1 -9.532e-03 4.921e-03 -1.937 0.052763 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.8023 on 27445 degrees of freedom
## Multiple R-squared: 0.3572, Adjusted R-squared: 0.3563
## F-statistic: 401.3 on 38 and 27445 DF, p-value: < 2.2e-16
We then run this analysis through randomForest:
forest_recy <- randomForest(wrrecyregform, data = trainTransformed,
importance = TRUE, ntree = 500)
plot(forest_recy)
varImpPlot(forest_recy)
Preprocess:
set.seed(123)
splitrec <- sample.split(nfl_data$rec, SplitRatio = 0.7)
TrainRec <- subset(nfl_data, split == TRUE)
TestRec <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(TrainRec, method = c("center", "scale"))
trainTransformedrec <- predict(preProcValues, TrainRec)
testTransformedrec <- predict(preProcValues, TestRec)
ggpairs:
ggpairs(nfl_data[,c("rec",colnames(filtered_nfl_data_fields[1:9]))])
ggpairs(nfl_data[,c("rec",colnames(filtered_nfl_data_fields[10:18]))])
ggpairs(nfl_data[,c("rec",colnames(filtered_nfl_data_fields[19:27]))])
ggpairs(nfl_data[,c("rec",colnames(filtered_nfl_data_fields[28:36]))])
ggpairs(nfl_data[,c("rec",colnames(filtered_nfl_data_fields[37:45]))])
ggpairs(nfl_data[,c("rec",colnames(filtered_nfl_data_fields[46:51]))])
####Regressions
recregform <- formula(paste("rec ~ ",
paste(colnames(filtered_nfl_data_fields), collapse="+")))
linRegrec <- lm(recregform, data = trainTransformedrec)
summary(linRegrec)
linRegrec2 <- update(linRegrec, ~. -hot_weather -forty1 -GB - SEA -avg_trg_team -avg_tdr_team
-avg_rbra_team -avg_fuml_team -avg_qbtdp_team - avg_qbints_team)
summary(linRegrec2)
##
## Call:
## lm(formula = rec ~ height + weight + cold_weather + home_team_1 +
## vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE +
## DAL + DEN + DET + HOU + IND + JAC + KC + MIA + MINN + NE +
## NOR + NYG + NYJ + OAK + PHI + PIT + SD + STL + TB + TEN +
## WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr +
## avg_qbtdp_plyr + grass_1 + bad_weather_1, data = trainTransformedrec)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.4209 -0.5034 -0.1309 0.3328 6.4705
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -4.117e-15 4.892e-03 0.000 1.000000
## height -5.471e-02 9.491e-03 -5.764 8.30e-09 ***
## weight -2.930e-02 8.141e-03 -3.599 0.000320 ***
## cold_weather -1.831e-02 5.123e-03 -3.575 0.000351 ***
## home_team_1 -1.155e-02 5.322e-03 -2.171 0.029960 *
## vertical1 -4.085e-03 5.539e-03 -0.737 0.460839
## ARI 2.666e-02 5.614e-03 4.749 2.05e-06 ***
## ATL 3.730e-02 5.633e-03 6.623 3.59e-11 ***
## BAL 3.765e-02 5.566e-03 6.765 1.36e-11 ***
## BUF 1.944e-02 5.550e-03 3.503 0.000460 ***
## CAR 1.562e-02 5.537e-03 2.820 0.004799 **
## CHI 3.435e-02 5.517e-03 6.226 4.85e-10 ***
## CIN 3.262e-02 5.545e-03 5.883 4.07e-09 ***
## CLE 4.498e-02 5.565e-03 8.084 6.53e-16 ***
## DAL 2.017e-02 5.601e-03 3.601 0.000317 ***
## DEN 1.502e-02 5.578e-03 2.693 0.007076 **
## DET 3.750e-02 5.571e-03 6.733 1.70e-11 ***
## HOU 3.675e-02 5.638e-03 6.517 7.28e-11 ***
## IND 3.111e-02 5.584e-03 5.571 2.56e-08 ***
## JAC 2.900e-02 5.522e-03 5.251 1.52e-07 ***
## KC 3.215e-02 5.575e-03 5.767 8.16e-09 ***
## MIA 2.886e-02 5.521e-03 5.227 1.73e-07 ***
## MINN 3.747e-02 5.549e-03 6.752 1.49e-11 ***
## NE 1.674e-02 5.633e-03 2.971 0.002969 **
## NOR 3.146e-02 5.652e-03 5.566 2.64e-08 ***
## NYG 2.637e-02 5.564e-03 4.741 2.14e-06 ***
## NYJ 1.466e-02 5.568e-03 2.632 0.008481 **
## OAK 3.227e-02 5.625e-03 5.737 9.74e-09 ***
## PHI 2.928e-02 5.505e-03 5.319 1.05e-07 ***
## PIT 3.819e-02 5.564e-03 6.863 6.89e-12 ***
## SD 2.956e-02 5.545e-03 5.331 9.86e-08 ***
## STL 2.873e-02 5.595e-03 5.135 2.85e-07 ***
## TB 1.688e-02 5.539e-03 3.048 0.002303 **
## TEN 2.255e-02 5.564e-03 4.052 5.08e-05 ***
## WAS 3.198e-02 5.557e-03 5.755 8.73e-09 ***
## avg_rectd_plyr 5.423e-01 6.172e-03 87.875 < 2e-16 ***
## avg_rbry_plyr 1.315e-01 7.367e-03 17.849 < 2e-16 ***
## avg_rbry_pos -7.500e-02 8.704e-03 -8.617 < 2e-16 ***
## avg_fuml_plyr -7.142e-03 7.223e-03 -0.989 0.322784
## avg_qbtdp_plyr -1.016e-01 7.524e-03 -13.506 < 2e-16 ***
## grass_1 -1.263e-02 5.550e-03 -2.275 0.022914 *
## bad_weather_1 -1.047e-02 4.976e-03 -2.104 0.035390 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.811 on 27442 degrees of freedom
## Multiple R-squared: 0.3432, Adjusted R-squared: 0.3422
## F-statistic: 349.8 on 41 and 27442 DF, p-value: < 2.2e-16
We had a modest r-square improvement. The R2 is not very strong (0.4457), and we achieved approximately the same value when we cut the variables down to just 6. Much simpler model with similar results
Testing the data, we see that the training set and the test set are similar. The model seems to hold up through testing
RecPredicted <- predict(linRegrec2, newdata = testTransformedrec)
SSErec <- sum((RecPredicted - testTransformedrec$rec)^2)
SSTrec <- sum((mean(c(testTransformedrec$rec,trainTransformedrec$rec))-testTransformedrec$rec)^2)
r2_rec <- 1 - SSErec/SSTrec
r2_rec
## [1] 0.3614972
rmse_rec <- sqrt(SSErec/nrow(testTransformedrec))
rmse_rec
## [1] 0.7969974
Looking at the regression plots:
par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegrec2, which = c(1,2,3,5))
The charts show very similarly to what we saw above for receiving yards.
The summary statistics are below:
confint(linRegrec2)
## 2.5 % 97.5 %
## (Intercept) -0.009588716 0.0095887159
## height -0.073311748 -0.0361050567
## weight -0.045255501 -0.0133437044
## cold_weather -0.028355199 -0.0082735662
## home_team_1 -0.021982346 -0.0011211872
## vertical1 -0.014940648 0.0067714074
## ARI 0.015659421 0.0376682885
## ATL 0.026264525 0.0483453015
## BAL 0.026742150 0.0485595637
## BUF 0.008565760 0.0303229949
## CAR 0.004764205 0.0264702673
## CHI 0.023535464 0.0451622569
## CIN 0.021751469 0.0434865873
## CLE 0.034077046 0.0558912642
## DAL 0.009192547 0.0311496124
## DEN 0.004090978 0.0259579177
## DET 0.026585238 0.0484223772
## HOU 0.025694103 0.0477960158
## IND 0.020163375 0.0420543502
## JAC 0.018173687 0.0398186007
## KC 0.021223060 0.0430769410
## MIA 0.018036876 0.0396783173
## MINN 0.026591036 0.0483440036
## NE 0.005695593 0.0277778225
## NOR 0.020379366 0.0425360434
## NYG 0.015470120 0.0372797756
## NYJ 0.003744224 0.0255720611
## OAK 0.021246695 0.0432984222
## PHI 0.018488304 0.0400684540
## PIT 0.027280183 0.0490917161
## SD 0.018690394 0.0404276600
## STL 0.017761430 0.0396942051
## TB 0.006028188 0.0277415125
## TEN 0.011642942 0.0334557042
## WAS 0.021089472 0.0428718167
## avg_rectd_plyr 0.530241430 0.5544352471
## avg_rbry_plyr 0.117052640 0.1459311941
## avg_rbry_pos -0.092064124 -0.0579440215
## avg_fuml_plyr -0.021300372 0.0070158912
## avg_qbtdp_plyr -0.116366581 -0.0868717574
## grass_1 -0.023503224 -0.0017478469
## bad_weather_1 -0.020222651 -0.0007161738
coef(summary(linRegrec2))
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -4.117011e-15 0.004892076 -8.415672e-13 1.000000e+00
## height -5.470840e-02 0.009491259 -5.764083e+00 8.298176e-09
## weight -2.929960e-02 0.008140555 -3.599214e+00 3.197418e-04
## cold_weather -1.831438e-02 0.005122734 -3.575119e+00 3.506695e-04
## home_team_1 -1.155177e-02 0.005321587 -2.170737e+00 2.995960e-02
## vertical1 -4.084620e-03 0.005538647 -7.374762e-01 4.608391e-01
## ARI 2.666385e-02 0.005614363 4.749222e+00 2.052317e-06
## ATL 3.730491e-02 0.005632706 6.622911e+00 3.586973e-11
## BAL 3.765086e-02 0.005565523 6.765016e+00 1.359713e-11
## BUF 1.944438e-02 0.005550172 3.503383e+00 4.601199e-04
## CAR 1.561724e-02 0.005537118 2.820463e+00 4.798883e-03
## CHI 3.434886e-02 0.005516897 6.226120e+00 4.850519e-10
## CIN 3.261903e-02 0.005544530 5.883100e+00 4.073201e-09
## CLE 4.498416e-02 0.005564708 8.083830e+00 6.532687e-16
## DAL 2.017108e-02 0.005601148 3.601240e+00 3.172614e-04
## DEN 1.502445e-02 0.005578157 2.693443e+00 7.076126e-03
## DET 3.750381e-02 0.005570555 6.732508e+00 1.700495e-11
## HOU 3.674506e-02 0.005638098 6.517279e+00 7.283502e-11
## IND 3.110886e-02 0.005584289 5.570783e+00 2.559725e-08
## JAC 2.899614e-02 0.005521520 5.251479e+00 1.520063e-07
## KC 3.215000e-02 0.005574826 5.766996e+00 8.156229e-09
## MIA 2.885760e-02 0.005520634 5.227225e+00 1.733312e-07
## MINN 3.746752e-02 0.005549084 6.752019e+00 1.487078e-11
## NE 1.673671e-02 0.005633077 2.971149e+00 2.969453e-03
## NOR 3.145770e-02 0.005652068 5.565698e+00 2.635426e-08
## NYG 2.637495e-02 0.005563544 4.740674e+00 2.140769e-06
## NYJ 1.465814e-02 0.005568182 2.632482e+00 8.481086e-03
## OAK 3.227256e-02 0.005625296 5.737042e+00 9.735669e-09
## PHI 2.927838e-02 0.005504999 5.318508e+00 1.054402e-07
## PIT 3.818595e-02 0.005564024 6.863010e+00 6.885796e-12
## SD 2.955903e-02 0.005545078 5.330678e+00 9.861900e-08
## STL 2.872782e-02 0.005594952 5.134596e+00 2.846801e-07
## TB 1.688485e-02 0.005538971 3.048373e+00 2.303029e-03
## TEN 2.254932e-02 0.005564337 4.052473e+00 5.081867e-05
## WAS 3.198064e-02 0.005556578 5.755457e+00 8.732710e-09
## avg_rectd_plyr 5.423383e-01 0.006171733 8.787456e+01 0.000000e+00
## avg_rbry_plyr 1.314919e-01 0.007366788 1.784929e+01 7.370893e-71
## avg_rbry_pos -7.500407e-02 0.008703884 -8.617311e+00 7.216658e-18
## avg_fuml_plyr -7.142240e-03 0.007223351 -9.887711e-01 3.227839e-01
## avg_qbtdp_plyr -1.016192e-01 0.007523996 -1.350601e+01 1.955406e-41
## grass_1 -1.262554e-02 0.005549698 -2.274995e+00 2.291391e-02
## bad_weather_1 -1.046941e-02 0.004976014 -2.103976e+00 3.538965e-02
anova(linRegrec2)
## Analysis of Variance Table
##
## Response: rec
## Df Sum Sq Mean Sq F value Pr(>F)
## height 1 0.2 0.2 0.3588 0.5491700
## weight 1 326.5 326.5 496.4268 < 2.2e-16 ***
## cold_weather 1 20.0 20.0 30.4066 3.535e-08 ***
## home_team_1 1 12.3 12.3 18.7076 1.529e-05 ***
## vertical1 1 748.4 748.4 1137.8367 < 2.2e-16 ***
## ARI 1 3.5 3.5 5.2794 0.0215870 *
## ATL 1 36.6 36.6 55.6655 8.846e-14 ***
## BAL 1 0.6 0.6 0.9800 0.3222059
## BUF 1 2.2 2.2 3.3080 0.0689538 .
## CAR 1 8.1 8.1 12.3639 0.0004384 ***
## CHI 1 0.5 0.5 0.8096 0.3682460
## CIN 1 0.2 0.2 0.3079 0.5789480
## CLE 1 3.9 3.9 5.9089 0.0150710 *
## DAL 1 4.1 4.1 6.2492 0.0124309 *
## DEN 1 0.3 0.3 0.3959 0.5292150
## DET 1 12.9 12.9 19.6460 9.356e-06 ***
## HOU 1 0.1 0.1 0.0928 0.7606060
## IND 1 2.3 2.3 3.4616 0.0628218 .
## JAC 1 3.2 3.2 4.9407 0.0262397 *
## KC 1 4.3 4.3 6.4946 0.0108256 *
## MIA 1 1.2 1.2 1.7795 0.1822205
## MINN 1 6.7 6.7 10.1983 0.0014073 **
## NE 1 47.7 47.7 72.5198 < 2.2e-16 ***
## NOR 1 32.1 32.1 48.7564 2.964e-12 ***
## NYG 1 6.3 6.3 9.5470 0.0020048 **
## NYJ 1 13.5 13.5 20.4518 6.141e-06 ***
## OAK 1 3.6 3.6 5.4105 0.0200235 *
## PHI 1 7.7 7.7 11.7561 0.0006073 ***
## PIT 1 18.4 18.4 27.9729 1.240e-07 ***
## SD 1 13.8 13.8 21.0393 4.520e-06 ***
## STL 1 0.0 0.0 0.0049 0.9444320
## TB 1 0.1 0.1 0.1522 0.6964744
## TEN 1 5.5 5.5 8.2967 0.0039749 **
## WAS 1 1.6 1.6 2.4295 0.1190812
## avg_rectd_plyr 1 7645.2 7645.2 11623.1297 < 2.2e-16 ***
## avg_rbry_plyr 1 159.2 159.2 242.0776 < 2.2e-16 ***
## avg_rbry_pos 1 62.5 62.5 95.0615 < 2.2e-16 ***
## avg_fuml_plyr 1 90.7 90.7 137.8181 < 2.2e-16 ***
## avg_qbtdp_plyr 1 120.3 120.3 182.8737 < 2.2e-16 ***
## grass_1 1 3.6 3.6 5.4809 0.0192327 *
## bad_weather_1 1 2.9 2.9 4.4267 0.0353896 *
## Residuals 27442 18050.2 0.7
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Like the model above, linear regression may not be the best predictor for this statistic
AIC:
aic_rec <- step(lm(recregform, data = TrainRecy), direction = "backward")
AIC appeared to be very similar to the linear regression
summary(aic_rec)
##
## Call:
## lm(formula = rec ~ height + weight + cold_weather + home_team_1 +
## ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE + DAL + DEN +
## DET + HOU + IND + JAC + KC + MIA + MINN + NE + NOR + NYG +
## NYJ + OAK + PHI + PIT + SD + STL + TB + TEN + WAS + avg_rectd_plyr +
## avg_rbry_plyr + avg_rbry_pos + avg_qbtdp_plyr + grass_1 +
## bad_weather_1, data = TrainRecy)
##
## Residuals:
## Min 1Q Median 3Q Max
## -7.8406 -1.1542 -0.3057 0.7649 14.8589
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.4288403 0.4343537 10.196 < 2e-16 ***
## height -0.0436825 0.0074728 -5.846 5.11e-09 ***
## weight -0.0025568 0.0007415 -3.448 0.000565 ***
## cold_weather -0.0973798 0.0273094 -3.566 0.000363 ***
## home_team_1 -0.0546094 0.0250378 -2.181 0.029186 *
## ARI 0.3502418 0.0742707 4.716 2.42e-06 ***
## ATL 0.4948539 0.0739367 6.693 2.23e-11 ***
## BAL 0.4846370 0.0717221 6.757 1.44e-11 ***
## BUF 0.2587108 0.0742520 3.484 0.000494 ***
## CAR 0.2035673 0.0733810 2.774 0.005539 **
## CHI 0.4679192 0.0754847 6.199 5.77e-10 ***
## CIN 0.4348333 0.0739210 5.882 4.09e-09 ***
## CLE 0.5944355 0.0741039 8.022 1.08e-15 ***
## DAL 0.2670033 0.0743147 3.593 0.000328 ***
## DEN 0.1894232 0.0718750 2.635 0.008407 **
## DET 0.5004710 0.0749460 6.678 2.47e-11 ***
## HOU 0.4798583 0.0737354 6.508 7.76e-11 ***
## IND 0.4077489 0.0737564 5.528 3.26e-08 ***
## JAC 0.3915629 0.0752240 5.205 1.95e-07 ***
## KC 0.4193124 0.0730046 5.744 9.36e-09 ***
## MIA 0.3881579 0.0744144 5.216 1.84e-07 ***
## MINN 0.5038827 0.0750977 6.710 1.99e-11 ***
## NE 0.2196340 0.0713348 3.079 0.002080 **
## NOR 0.3944542 0.0708541 5.567 2.61e-08 ***
## NYG 0.3437778 0.0726963 4.729 2.27e-06 ***
## NYJ 0.1864476 0.0731151 2.550 0.010776 *
## OAK 0.4154240 0.0724924 5.731 1.01e-08 ***
## PHI 0.3970076 0.0751356 5.284 1.27e-07 ***
## PIT 0.4949440 0.0724579 6.831 8.62e-12 ***
## SD 0.3999331 0.0750317 5.330 9.89e-08 ***
## STL 0.3874373 0.0754529 5.135 2.84e-07 ***
## TB 0.2247123 0.0743276 3.023 0.002503 **
## TEN 0.2949138 0.0737838 3.997 6.43e-05 ***
## WAS 0.4150453 0.0728965 5.694 1.26e-08 ***
## avg_rectd_plyr 7.9343003 0.0895911 88.561 < 2e-16 ***
## avg_rbry_plyr 0.0154780 0.0008331 18.579 < 2e-16 ***
## avg_rbry_pos -0.0127897 0.0014821 -8.629 < 2e-16 ***
## avg_qbtdp_plyr -0.5338136 0.0290800 -18.357 < 2e-16 ***
## grass_1 -0.0577780 0.0254762 -2.268 0.023342 *
## bad_weather_1 -0.1064256 0.0506219 -2.102 0.035531 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.861 on 27444 degrees of freedom
## Multiple R-squared: 0.3432, Adjusted R-squared: 0.3423
## F-statistic: 367.7 on 39 and 27444 DF, p-value: < 2.2e-16
We then run this through randomForest:
forest_rec <- randomForest(recregform, data = trainTransformedrec,
importance = TRUE, ntree = 500)
plot(forest_rec)
varImpPlot(forest_rec)
forest_rec
##
## Call:
## randomForest(formula = recregform, data = trainTransformedrec, importance = TRUE, ntree = 500)
## Type of random forest: regression
## Number of trees: 500
## No. of variables tried at each split: 17
##
## Mean of squared residuals: 0.5854199
## % Var explained: 41.46
Preprocess:
set.seed(123)
splittrg <- sample.split(nfl_data$trg, SplitRatio = 0.7)
Traintrg <- subset(nfl_data, split == TRUE)
Testtrg <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(Traintrg, method = c("center", "scale"))
trainTransformedtrg <- predict(preProcValues, Traintrg)
testTransformedtrg <- predict(preProcValues, Testtrg)
ggpairs:
ggpairs(nfl_data[,c("trg",colnames(filtered_nfl_data_fields[1:9]))])
ggpairs(nfl_data[,c("trg",colnames(filtered_nfl_data_fields[10:18]))])
ggpairs(nfl_data[,c("trg",colnames(filtered_nfl_data_fields[19:27]))])
ggpairs(nfl_data[,c("trg",colnames(filtered_nfl_data_fields[28:36]))])
ggpairs(nfl_data[,c("trg",colnames(filtered_nfl_data_fields[37:45]))])
ggpairs(nfl_data[,c("trg",colnames(filtered_nfl_data_fields[46:51]))])
trgregform <- formula(paste("trg ~ ",
paste(colnames(filtered_nfl_data_fields), collapse="+")))
linRegtrg <- lm(trgregform, data = trainTransformedtrg)
summary(linRegtrg)
linRegtrg2 <- update(linRegtrg, ~. -height-cold_weather-hot_weather-forty1-vertical1-DAL-DEN-GB-NE-NOR-SEA
-avg_trg_team -avg_tdr_team-avg_rbra_team -avg_fuml_team -avg_qbtdp_team
-avg_qbints_team - grass_1-bad_weather_1)
summary(linRegtrg2)
##
## Call:
## lm(formula = trg ~ weight + home_team_1 + ARI + ATL + BAL + BUF +
## CAR + CHI + CIN + CLE + DET + HOU + IND + JAC + KC + MIA +
## MINN + NYG + NYJ + OAK + PHI + PIT + SD + STL + TB + TEN +
## WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr +
## avg_qbtdp_plyr, data = trainTransformedtrg)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.8593 -0.4634 -0.1128 0.3281 5.3615
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.617e-15 4.573e-03 0.000 1.000000
## weight -1.000e-01 4.631e-03 -21.594 < 2e-16 ***
## home_team_1 -1.995e-02 4.823e-03 -4.137 3.53e-05 ***
## ARI 3.395e-02 4.851e-03 6.998 2.65e-12 ***
## ATL 2.430e-02 4.838e-03 5.023 5.12e-07 ***
## BAL 3.640e-02 4.823e-03 7.547 4.60e-14 ***
## BUF 2.220e-02 4.806e-03 4.620 3.85e-06 ***
## CAR 2.035e-02 4.811e-03 4.230 2.35e-05 ***
## CHI 2.459e-02 4.801e-03 5.121 3.07e-07 ***
## CIN 2.530e-02 4.804e-03 5.267 1.40e-07 ***
## CLE 4.859e-02 4.839e-03 10.040 < 2e-16 ***
## DET 3.359e-02 4.811e-03 6.982 2.97e-12 ***
## HOU 3.599e-02 4.859e-03 7.407 1.33e-13 ***
## IND 3.378e-02 4.822e-03 7.006 2.51e-12 ***
## JAC 3.626e-02 4.795e-03 7.560 4.14e-14 ***
## KC 2.514e-02 4.825e-03 5.211 1.89e-07 ***
## MIA 2.625e-02 4.798e-03 5.471 4.51e-08 ***
## MINN 3.226e-02 4.816e-03 6.699 2.14e-11 ***
## NYG 2.505e-02 4.808e-03 5.209 1.91e-07 ***
## NYJ 2.517e-02 4.822e-03 5.219 1.81e-07 ***
## OAK 2.971e-02 4.823e-03 6.160 7.39e-10 ***
## PHI 2.672e-02 4.802e-03 5.564 2.66e-08 ***
## PIT 2.404e-02 4.811e-03 4.997 5.85e-07 ***
## SD 1.560e-02 4.791e-03 3.257 0.001128 **
## STL 3.048e-02 4.848e-03 6.288 3.27e-10 ***
## TB 2.000e-02 4.806e-03 4.161 3.17e-05 ***
## TEN 2.184e-02 4.823e-03 4.527 6.00e-06 ***
## WAS 2.395e-02 4.822e-03 4.966 6.87e-07 ***
## avg_rectd_plyr 5.810e-01 5.664e-03 102.579 < 2e-16 ***
## avg_rbry_plyr 1.091e-01 6.871e-03 15.871 < 2e-16 ***
## avg_rbry_pos -9.647e-02 7.087e-03 -13.613 < 2e-16 ***
## avg_fuml_plyr -2.280e-02 6.723e-03 -3.391 0.000696 ***
## avg_qbtdp_plyr -1.057e-01 6.619e-03 -15.977 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.758 on 27451 degrees of freedom
## Multiple R-squared: 0.426, Adjusted R-squared: 0.4254
## F-statistic: 636.7 on 32 and 27451 DF, p-value: < 2.2e-16
Modest gains in second run’s R2. It is a much more simple model, and has a little better descriptive stats.
Testing the data, we see that the training set and the test set are similar. The model seems to hold up through testing
TrgPredicted <- predict(linRegtrg2, newdata = testTransformedtrg)
SSEtrg <- sum((TrgPredicted - testTransformedtrg$trg)^2)
SSTtrg <- sum((mean(c(testTransformedtrg$trg, trainTransformedtrg$trg))-testTransformedtrg$trg)^2)
r2_trg <- 1 - SSEtrg/SSTtrg
r2_trg
## [1] 0.4433043
rmse_trg <- sqrt(SSEtrg/nrow(testTransformedtrg))
rmse_trg
## [1] 0.7421937
The regression plots for targets are below:
par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegrec2, which = c(1:3,5))
Here are additional summary statistics:
confint(linRegtrg2)
## 2.5 % 97.5 %
## (Intercept) -0.008962372 0.008962372
## weight -0.109072460 -0.090919689
## home_team_1 -0.029407521 -0.010499863
## ARI 0.024443139 0.043461176
## ATL 0.014816272 0.033779985
## BAL 0.026945513 0.045852511
## BUF 0.012784765 0.031622921
## CAR 0.010919267 0.029777561
## CHI 0.015174471 0.033995707
## CIN 0.015884937 0.034717487
## CLE 0.039102914 0.058073333
## DET 0.024163320 0.043024446
## HOU 0.026466108 0.045512540
## IND 0.024332465 0.043237109
## JAC 0.026856263 0.045654833
## KC 0.015685651 0.034600137
## MIA 0.016847793 0.035657765
## MINN 0.022823096 0.041702343
## NYG 0.015622503 0.034469521
## NYJ 0.015717405 0.034621023
## OAK 0.020253373 0.039158780
## PHI 0.017304578 0.036128312
## PIT 0.014610681 0.033468501
## SD 0.006212349 0.024992919
## STL 0.020979488 0.039984055
## TB 0.010580046 0.029420028
## TEN 0.012383540 0.031291995
## WAS 0.014495624 0.033398144
## avg_rectd_plyr 0.569942774 0.592147559
## avg_rbry_plyr 0.095582869 0.122518021
## avg_rbry_pos -0.110362600 -0.082581821
## avg_fuml_plyr -0.035976124 -0.009622626
## avg_qbtdp_plyr -0.118718776 -0.092772666
coef(summary(linRegtrg2))
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.616974e-15 0.004572521 -3.536285e-13 1.000000e+00
## weight -9.999607e-02 0.004630690 -2.159421e+01 1.455031e-102
## home_team_1 -1.995369e-02 0.004823258 -4.136974e+00 3.529640e-05
## ARI 3.395216e-02 0.004851415 6.998403e+00 2.648420e-12
## ATL 2.429813e-02 0.004837557 5.022809e+00 5.124010e-07
## BAL 3.639901e-02 0.004823090 7.546825e+00 4.598244e-14
## BUF 2.220384e-02 0.004805528 4.620479e+00 3.845937e-06
## CAR 2.034841e-02 0.004810665 4.229854e+00 2.346000e-05
## CHI 2.458509e-02 0.004801212 5.120601e+00 3.066202e-07
## CIN 2.530121e-02 0.004804098 5.266589e+00 1.400281e-07
## CLE 4.858812e-02 0.004839268 1.004039e+01 1.112750e-23
## DET 3.359388e-02 0.004811388 6.982160e+00 2.972888e-12
## HOU 3.598932e-02 0.004858659 7.407255e+00 1.326510e-13
## IND 3.378479e-02 0.004822489 7.005674e+00 2.514675e-12
## JAC 3.625555e-02 0.004795430 7.560437e+00 4.142604e-14
## KC 2.514289e-02 0.004825000 5.210963e+00 1.892202e-07
## MIA 2.625278e-02 0.004798339 5.471222e+00 4.508438e-08
## MINN 3.226272e-02 0.004816010 6.699055e+00 2.138233e-11
## NYG 2.504601e-02 0.004807789 5.209465e+00 1.907521e-07
## NYJ 2.516921e-02 0.004822228 5.219416e+00 1.807925e-07
## OAK 2.970608e-02 0.004822684 6.159657e+00 7.391443e-10
## PHI 2.671644e-02 0.004801849 5.563782e+00 2.664494e-08
## PIT 2.403959e-02 0.004810545 4.997270e+00 5.850484e-07
## SD 1.560263e-02 0.004790839 3.256765e+00 1.128265e-03
## STL 3.048177e-02 0.004847979 6.287521e+00 3.274283e-10
## TB 2.000004e-02 0.004805994 4.161478e+00 3.171574e-05
## TEN 2.183777e-02 0.004823461 4.527406e+00 5.996295e-06
## WAS 2.394688e-02 0.004821948 4.966227e+00 6.867755e-07
## avg_rectd_plyr 5.810452e-01 0.005664340 1.025795e+02 0.000000e+00
## avg_rbry_plyr 1.090504e-01 0.006871035 1.587104e+01 1.794185e-56
## avg_rbry_pos -9.647221e-02 0.007086751 -1.361304e+01 4.589358e-42
## avg_fuml_plyr -2.279937e-02 0.006722658 -3.391423e+00 6.962880e-04
## avg_qbtdp_plyr -1.057457e-01 0.006618735 -1.597673e+01 3.363564e-57
anova(linRegtrg2)
## Analysis of Variance Table
##
## Response: trg
## Df Sum Sq Mean Sq F value Pr(>F)
## weight 1 359.6 359.6 625.8500 < 2.2e-16 ***
## home_team_1 1 18.1 18.1 31.4392 2.078e-08 ***
## ARI 1 0.2 0.2 0.3197 0.571799
## ATL 1 6.1 6.1 10.6206 0.001120 **
## BAL 1 0.9 0.9 1.6206 0.203025
## BUF 1 0.8 0.8 1.3448 0.246194
## CAR 1 0.6 0.6 1.0163 0.313413
## CHI 1 0.0 0.0 0.0073 0.932089
## CIN 1 0.3 0.3 0.5180 0.471689
## CLE 1 0.0 0.0 0.0621 0.803255
## DET 1 21.4 21.4 37.2209 1.069e-09 ***
## HOU 1 1.1 1.1 1.8455 0.174323
## IND 1 11.6 11.6 20.1547 7.171e-06 ***
## JAC 1 2.0 2.0 3.4702 0.062494 .
## KC 1 6.0 6.0 10.4925 0.001200 **
## MIA 1 0.7 0.7 1.2103 0.271286
## MINN 1 1.0 1.0 1.7083 0.191223
## NYG 1 3.7 3.7 6.3533 0.011722 *
## NYJ 1 0.6 0.6 1.1157 0.290857
## OAK 1 1.0 1.0 1.7412 0.186993
## PHI 1 3.8 3.8 6.6112 0.010139 *
## PIT 1 5.0 5.0 8.7286 0.003135 **
## SD 1 1.0 1.0 1.7287 0.188586
## STL 1 3.0 3.0 5.1518 0.023230 *
## TB 1 0.5 0.5 0.7916 0.373618
## TEN 1 3.7 3.7 6.4768 0.010935 *
## WAS 1 0.6 0.6 1.0442 0.306864
## avg_rectd_plyr 1 10771.0 10771.0 18744.1659 < 2.2e-16 ***
## avg_rbry_plyr 1 74.1 74.1 128.9315 < 2.2e-16 ***
## avg_rbry_pos 1 58.0 58.0 101.0080 < 2.2e-16 ***
## avg_fuml_plyr 1 205.7 205.7 357.9520 < 2.2e-16 ***
## avg_qbtdp_plyr 1 146.7 146.7 255.2558 < 2.2e-16 ***
## Residuals 27451 15774.3 0.6
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
This one was an improvement over the previous models. It still has its problems, and may need some refinement or other variables to improve the predictions.
AIC:
aic_trg <- step(lm(trgregform, data = trainTransformedtrg), direction = "backward")
summary(aic_trg)
##
## Call:
## lm(formula = trg ~ height + weight + cold_weather + home_team_1 +
## forty1 + ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE +
## DAL + DEN + DET + HOU + IND + JAC + KC + MIA + MINN + NE +
## NOR + NYG + NYJ + OAK + PHI + PIT + SD + SEA + STL + TB +
## TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + grass_1, data = trainTransformedtrg)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.7706 -0.4598 -0.1104 0.3198 5.3223
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.784e-15 4.567e-03 0.000 1.000000
## height -1.982e-02 8.858e-03 -2.238 0.025261 *
## weight -6.489e-02 8.284e-03 -7.834 4.90e-15 ***
## cold_weather -7.474e-03 4.747e-03 -1.575 0.115372
## home_team_1 -1.684e-02 4.968e-03 -3.390 0.000699 ***
## forty1 -4.188e-02 6.732e-03 -6.221 5.00e-10 ***
## ARI 3.932e-02 5.561e-03 7.070 1.59e-12 ***
## ATL 3.113e-02 5.567e-03 5.592 2.27e-08 ***
## BAL 4.284e-02 5.529e-03 7.747 9.70e-15 ***
## BUF 2.785e-02 5.507e-03 5.057 4.29e-07 ***
## CAR 2.571e-02 5.460e-03 4.710 2.49e-06 ***
## CHI 3.190e-02 5.421e-03 5.885 4.03e-09 ***
## CIN 3.262e-02 5.504e-03 5.926 3.14e-09 ***
## CLE 5.613e-02 5.479e-03 10.244 < 2e-16 ***
## DAL 1.053e-02 5.544e-03 1.899 0.057583 .
## DEN 1.590e-02 5.498e-03 2.892 0.003835 **
## DET 3.944e-02 5.502e-03 7.169 7.77e-13 ***
## HOU 4.346e-02 5.587e-03 7.780 7.53e-15 ***
## IND 3.871e-02 5.536e-03 6.992 2.76e-12 ***
## JAC 4.245e-02 5.418e-03 7.834 4.90e-15 ***
## KC 3.271e-02 5.494e-03 5.953 2.66e-09 ***
## MIA 3.334e-02 5.430e-03 6.139 8.41e-10 ***
## MINN 3.835e-02 5.493e-03 6.982 2.97e-12 ***
## NE 1.705e-02 5.634e-03 3.026 0.002481 **
## NOR 1.488e-02 5.625e-03 2.646 0.008159 **
## NYG 3.252e-02 5.528e-03 5.882 4.09e-09 ***
## NYJ 3.114e-02 5.527e-03 5.633 1.79e-08 ***
## OAK 3.606e-02 5.548e-03 6.500 8.15e-11 ***
## PHI 3.360e-02 5.411e-03 6.210 5.38e-10 ***
## PIT 3.206e-02 5.490e-03 5.839 5.30e-09 ***
## SD 2.426e-02 5.438e-03 4.461 8.19e-06 ***
## SEA -8.800e-03 5.588e-03 -1.575 0.115295
## STL 3.770e-02 5.526e-03 6.822 9.15e-12 ***
## TB 2.658e-02 5.448e-03 4.880 1.07e-06 ***
## TEN 2.875e-02 5.474e-03 5.253 1.51e-07 ***
## WAS 2.880e-02 5.488e-03 5.248 1.55e-07 ***
## avg_rectd_plyr 5.742e-01 5.809e-03 98.839 < 2e-16 ***
## avg_rbry_plyr 1.036e-01 6.969e-03 14.861 < 2e-16 ***
## avg_rbry_pos -1.075e-01 8.128e-03 -13.232 < 2e-16 ***
## avg_fuml_plyr -2.168e-02 6.744e-03 -3.215 0.001307 **
## avg_qbtdp_plyr -8.711e-02 7.321e-03 -11.898 < 2e-16 ***
## grass_1 -7.753e-03 5.238e-03 -1.480 0.138822
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.7572 on 27442 degrees of freedom
## Multiple R-squared: 0.4276, Adjusted R-squared: 0.4267
## F-statistic: 500 on 41 and 27442 DF, p-value: < 2.2e-16
RandomForest:
forest_trg <- randomForest(trgregform, data = trainTransformedtrg,
importance = TRUE, ntree = 500)
plot(forest_trg)
varImpPlot(forest_trg)
PreProcess:
set.seed(123)
splittdrec <- sample.split(nfl_data$tdrec, SplitRatio = 0.7)
Traintdrec <- subset(nfl_data, split == TRUE)
Testtdrec <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(Traintdrec, method = c("center", "scale"))
trainTransformedtdrec <- predict(preProcValues, Traintdrec)
testTransformedtdrec <- predict(preProcValues, Testtdrec)
ggpairs:
ggpairs(nfl_data[,c("tdrec",colnames(filtered_nfl_data_fields[1:9]))])
ggpairs(nfl_data[,c("tdrec",colnames(filtered_nfl_data_fields[10:18]))])
ggpairs(nfl_data[,c("tdrec",colnames(filtered_nfl_data_fields[19:27]))])
ggpairs(nfl_data[,c("tdrec",colnames(filtered_nfl_data_fields[28:36]))])
ggpairs(nfl_data[,c("tdrec",colnames(filtered_nfl_data_fields[37:45]))])
ggpairs(nfl_data[,c("tdrec",colnames(filtered_nfl_data_fields[46:51]))])
tdrecregform <- formula(paste("tdrec ~ ",
paste(colnames(filtered_nfl_data_fields), collapse="+")))
linRegRecTD <- lm(tdrecregform, data = trainTransformedtdrec)
summary(linRegRecTD)
linRegRecTD2 <- update(linRegRecTD, ~. -height-weight-cold_weather-hot_weather-home_team_1
-forty1-is_WR-is_TE-age-vertical1-ARI-BAL-BUF-CAR-CIN-CLE-DAL-DEN-DET-GB
-HOU-IND-JAC-KC-MIA-MINN-NE-NYG-NYJ-OAK-PHI-PIT-SEA-STL-TB-TEN-WAS
-avg_trg_team -avg_tdr_team-avg_rbra_team-avg_rbry_plyr
-avg_rbry_pos-avg_fuml_plyr-avg_fuml_team-avg_qbints_plyr_avg_qbtdp_team
-avg_qbints_team - grass_1-bad_weather_1)
summary(linRegRecTD2)
linRegRecTD3 <- update(linRegRecTD2, ~. -ATL-CHI-NOR-SD-avg_qbints_plyr-avg_qbints_team)
summary(linRegRecTD3)
##
## Call:
## lm(formula = tdrec ~ avg_rectd_plyr + avg_qbtdp_plyr + avg_qbtdp_team,
## data = trainTransformedtdrec)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.9629 -0.4373 -0.1342 0.0040 9.0780
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -5.147e-16 5.562e-03 0.000 1.00000
## avg_rectd_plyr 3.839e-01 5.941e-03 64.611 < 2e-16 ***
## avg_qbtdp_plyr -1.732e-03 5.876e-03 -0.295 0.76822
## avg_qbtdp_team 1.505e-02 5.686e-03 2.647 0.00811 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9221 on 27480 degrees of freedom
## Multiple R-squared: 0.1499, Adjusted R-squared: 0.1498
## F-statistic: 1615 on 3 and 27480 DF, p-value: < 2.2e-16
The R2 is worsened in the second model, and the third. (the R2 in general is fairly low)
Testing the data, we see that the training set and the test set are similar. The model seems to hold up through testing
RectdPredicted <- predict(linRegRecTD3, newdata = testTransformedtdrec)
SSErectd <- sum((RectdPredicted - testTransformedtdrec$tdrec)^2)
SSTrectd <- sum((mean(c(testTransformedtdrec$tdrec,trainTransformedtdrec$tdrec))-testTransformedtdrec$tdrec)^2)
r2_rectd <- 1 - SSErectd/SSTrectd
r2_rectd
## [1] 0.1501794
rmse_rectd <- sqrt(SSEtrg/nrow(testTransformedtdrec))
rmse_rectd
## [1] 0.7421937
Regression plots below
par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegRecTD3, which = c(1:3,5))
I would say that it appears that these charts do not like the prediction. Touchdowns are infrequent and random/unpredictable. If a receiver has an amazing season and gets 100 receptions, if they had 10 Tds it would be an All-pro year for them.
Additional summary statistics
confint(linRegRecTD3)
## 2.5 % 97.5 %
## (Intercept) -0.010901714 0.01090171
## avg_rectd_plyr 0.372215276 0.39550490
## avg_qbtdp_plyr -0.013249830 0.00978614
## avg_qbtdp_team 0.003908858 0.02619924
coef(summary(linRegRecTD3))
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -5.146925e-16 0.005561956 -9.253804e-14 1.000000000
## avg_rectd_plyr 3.838601e-01 0.005941078 6.461119e+01 0.000000000
## avg_qbtdp_plyr -1.731845e-03 0.005876372 -2.947133e-01 0.768215113
## avg_qbtdp_team 1.505405e-02 0.005686176 2.647482e+00 0.008113993
anova(linRegRecTD3)
## Analysis of Variance Table
##
## Response: tdrec
## Df Sum Sq Mean Sq F value Pr(>F)
## avg_rectd_plyr 1 4112.8 4112.8 4837.2842 < 2.2e-16 ***
## avg_qbtdp_plyr 1 0.0 0.0 0.0023 0.961434
## avg_qbtdp_team 1 6.0 6.0 7.0092 0.008114 **
## Residuals 27480 23364.2 0.9
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
AIC:
aic_tdrec <- step(lm(tdrecregform, data = trainTransformedtdrec), direction = "backward")
summary(aic_tdrec)
##
## Call:
## lm(formula = tdrec ~ home_team_1 + NOR + avg_rectd_plyr + bad_weather_1,
## data = trainTransformedtdrec)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.9922 -0.4368 -0.1319 0.0116 9.0705
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -5.544e-16 5.562e-03 0.000 1.0000
## home_team_1 9.119e-03 5.583e-03 1.633 0.1024
## NOR 1.112e-02 5.584e-03 1.991 0.0465 *
## avg_rectd_plyr 3.863e-01 5.572e-03 69.337 <2e-16 ***
## bad_weather_1 1.070e-02 5.570e-03 1.920 0.0548 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.922 on 27479 degrees of freedom
## Multiple R-squared: 0.15, Adjusted R-squared: 0.1498
## F-statistic: 1212 on 4 and 27479 DF, p-value: < 2.2e-16
RandomForest:
forest_tdrec <- randomForest(tdrecregform, data = trainTransformedtdrec,
importance = TRUE, ntree = 500)
## Warning in randomForest.default(m, y, ...): The response has five or fewer
## unique values. Are you sure you want to do regression?
plot(forest_tdrec)
varImpPlot(forest_tdrec)
##Passing
PreProcess:
set.seed(123)
splitpy <- sample.split(nfl_data$py, SplitRatio = 0.7)
Trainpy <- subset(nfl_data, split == TRUE)
Testpy <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(Trainpy, method = c("center", "scale"))
trainTransformedpy <- predict(preProcValues, Trainpy)
testTransformedpy <- predict(preProcValues, Testpy)
ggpairs:
ggpairs(nfl_data[,c("py",colnames(filtered_nfl_data_fields[1:9]))])
ggpairs(nfl_data[,c("py",colnames(filtered_nfl_data_fields[10:18]))])
ggpairs(nfl_data[,c("py",colnames(filtered_nfl_data_fields[19:27]))])
ggpairs(nfl_data[,c("py",colnames(filtered_nfl_data_fields[28:36]))])
ggpairs(nfl_data[,c("py",colnames(filtered_nfl_data_fields[37:45]))])
ggpairs(nfl_data[,c("py",colnames(filtered_nfl_data_fields[46:51]))])
Regression:
pyregform <- formula(paste("py ~ ",
paste(colnames(filtered_nfl_data_fields), collapse="+")))
linRegQBpyds <- lm(pyregform, data = trainTransformedpy)
summary(linRegQBpyds)
linRegQBpyds2 <- update(linRegQBpyds, ~.-hot_weather-home_team_1-vertical1-ATL-BAL-DAL-DEN-DET-KC
-NOR-PHI-PIT-SEA-SD-WAS-avg_trg_team-avg_tdr_team-avg_rbra_team-avg_rbry_plyr
-avg_fuml_team-avg_qbints_team-avg_qbtdp_team-grass_1)
summary(linRegQBpyds2)
##
## Call:
## lm(formula = py ~ height + weight + cold_weather + forty1 + ARI +
## BUF + CAR + CHI + CIN + CLE + GB + HOU + IND + JAC + MIA +
## MINN + NE + NYG + NYJ + OAK + STL + TB + TEN + avg_rectd_plyr +
## avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1,
## data = trainTransformedpy)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.0413 -0.0521 -0.0106 0.0261 4.9606
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.289e-15 2.344e-03 0.000 1.000000
## height 4.148e-02 4.525e-03 9.166 < 2e-16 ***
## weight -2.680e-02 4.230e-03 -6.336 2.40e-10 ***
## cold_weather -5.096e-03 2.412e-03 -2.113 0.034614 *
## forty1 2.488e-02 3.391e-03 7.338 2.23e-13 ***
## ARI 3.054e-03 2.400e-03 1.273 0.203163
## BUF 3.269e-03 2.400e-03 1.362 0.173119
## CAR 1.795e-03 2.397e-03 0.749 0.453945
## CHI -2.204e-03 2.401e-03 -0.918 0.358631
## CIN -4.019e-03 2.399e-03 -1.675 0.093918 .
## CLE 7.153e-03 2.410e-03 2.968 0.003001 **
## GB -1.565e-02 2.416e-03 -6.477 9.52e-11 ***
## HOU 8.488e-03 2.408e-03 3.525 0.000424 ***
## IND -3.844e-03 2.395e-03 -1.605 0.108539
## JAC -4.243e-04 2.395e-03 -0.177 0.859370
## MIA 1.151e-03 2.393e-03 0.481 0.630424
## MINN 4.273e-03 2.405e-03 1.777 0.075588 .
## NE -1.233e-02 2.445e-03 -5.044 4.58e-07 ***
## NYG -6.020e-03 2.400e-03 -2.508 0.012151 *
## NYJ -1.940e-03 2.399e-03 -0.809 0.418794
## OAK -9.088e-04 2.413e-03 -0.377 0.706470
## STL 1.559e-03 2.404e-03 0.648 0.516748
## TB -2.803e-03 2.398e-03 -1.169 0.242444
## TEN -7.200e-04 2.401e-03 -0.300 0.764233
## avg_rectd_plyr -1.931e-02 2.963e-03 -6.518 7.25e-11 ***
## avg_rbry_pos -4.247e-03 3.477e-03 -1.221 0.221986
## avg_fuml_plyr 7.115e-02 3.245e-03 21.926 < 2e-16 ***
## avg_qbtdp_plyr 8.484e-01 3.706e-03 228.891 < 2e-16 ***
## bad_weather_1 -5.277e-03 2.379e-03 -2.218 0.026589 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3885 on 27455 degrees of freedom
## Multiple R-squared: 0.8492, Adjusted R-squared: 0.849
## F-statistic: 5521 on 28 and 27455 DF, p-value: < 2.2e-16
This prediction actually turned out to be pretty strong (R2 0.87) and we did it with only 5 variables! This makes sense to me. QB is a 1 player position, with a significant investment in the player. A QB will get time to mature and prove himself good or bad.
Testing the data, we see that the training set and the test set are similar. The model seems to hold up through testing
PydsdPredicted <- predict(linRegQBpyds2, newdata = testTransformedpy)
SSEpyds <- sum((PydsdPredicted - testTransformedpy$py)^2)
SSTpyds <- sum((mean(c(testTransformedpy$py,trainTransformedpy$py))-testTransformedpy$py)^2)
r2_pyds <- 1 - SSEpyds/SSTpyds
r2_pyds
## [1] 0.8451773
rmse_pyds <- sqrt(SSEpyds/nrow(testTransformedpy))
rmse_pyds
## [1] 0.4007825
Below are the regression plots:
par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegQBpyds2, which = c(1:3,5))
The normal Q-Q shows are data has extreme values, and means the data is probably not normally distributed
Some more summary statistics:
confint(linRegQBpyds2)
## 2.5 % 97.5 %
## (Intercept) -0.0045936970 0.0045936970
## height 0.0326078543 0.0503464791
## weight -0.0350933025 -0.0185105021
## cold_weather -0.0098236426 -0.0003687761
## forty1 0.0182347552 0.0315260322
## ARI -0.0016498965 0.0077587289
## BUF -0.0014345387 0.0079730819
## CAR -0.0029037966 0.0064945761
## CHI -0.0069102798 0.0025020177
## CIN -0.0087219695 0.0006835929
## CLE 0.0024291162 0.0118777163
## GB -0.0203876978 -0.0109148362
## HOU 0.0037682390 0.0132071276
## IND -0.0085392589 0.0008508465
## JAC -0.0051186886 0.0042700044
## MIA -0.0035383674 0.0058406447
## MINN -0.0004402949 0.0089861675
## NE -0.0171234530 -0.0075402464
## NYG -0.0107246243 -0.0013150442
## NYJ -0.0066413585 0.0027623132
## OAK -0.0056389235 0.0038212445
## STL -0.0031534987 0.0062711114
## TB -0.0075025120 0.0018969260
## TEN -0.0054253315 0.0039853018
## avg_rectd_plyr -0.0251213934 -0.0135056939
## avg_rbry_pos -0.0110621988 0.0025688193
## avg_fuml_plyr 0.0647915244 0.0775128589
## avg_qbtdp_plyr 0.8410944287 0.8556238723
## bad_weather_1 -0.0099402225 -0.0006128489
coef(summary(linRegQBpyds2))
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.288901e-15 0.002343663 5.499515e-13 1.000000e+00
## height 4.147717e-02 0.004525043 9.166137e+00 5.235466e-20
## weight -2.680190e-02 0.004230197 -6.335851e+00 2.396931e-10
## cold_weather -5.096209e-03 0.002411894 -2.112949e+00 3.461410e-02
## forty1 2.488039e-02 0.003390545 7.338170e+00 2.225360e-13
## ARI 3.054416e-03 0.002400098 1.272622e+00 2.031631e-01
## BUF 3.269272e-03 0.002399842 1.362286e+00 1.731187e-01
## CAR 1.795390e-03 0.002397482 7.488646e-01 4.539452e-01
## CHI -2.204131e-03 0.002401035 -9.179922e-01 3.586310e-01
## CIN -4.019188e-03 0.002399316 -1.675139e+00 9.391838e-02
## CLE 7.153416e-03 0.002410295 2.967859e+00 3.001405e-03
## GB -1.565127e-02 0.002416484 -6.476875e+00 9.522448e-11
## HOU 8.487683e-03 0.002407818 3.525052e+00 4.240887e-04
## IND -3.844206e-03 0.002395373 -1.604846e+00 1.085391e-01
## JAC -4.243421e-04 0.002395013 -1.771774e-01 8.593704e-01
## MIA 1.151139e-03 0.002392544 4.811359e-01 6.304237e-01
## MINN 4.272936e-03 0.002404648 1.776949e+00 7.558773e-02
## NE -1.233185e-02 0.002444633 -5.044459e+00 4.577027e-07
## NYG -6.019834e-03 0.002400341 -2.507908e+00 1.215057e-02
## NYJ -1.939523e-03 0.002398834 -8.085272e-01 4.187942e-01
## OAK -9.088395e-04 0.002413246 -3.766046e-01 7.064704e-01
## STL 1.558806e-03 0.002404175 6.483746e-01 5.167481e-01
## TB -2.802793e-03 0.002397754 -1.168924e+00 2.424443e-01
## TEN -7.200148e-04 0.002400610 -2.999299e-01 7.642329e-01
## avg_rectd_plyr -1.931354e-02 0.002963112 -6.517992e+00 7.248974e-11
## avg_rbry_pos -4.246690e-03 0.003477211 -1.221292e+00 2.219860e-01
## avg_fuml_plyr 7.115219e-02 0.003245155 2.192567e+01 1.193963e-105
## avg_qbtdp_plyr 8.483592e-01 0.003706395 2.288906e+02 0.000000e+00
## bad_weather_1 -5.276536e-03 0.002379371 -2.217618e+00 2.658904e-02
anova(linRegQBpyds2)
## Analysis of Variance Table
##
## Response: py
## Df Sum Sq Mean Sq F value Pr(>F)
## height 1 1859.7 1859.7 12318.8750 < 2.2e-16 ***
## weight 1 446.2 446.2 2955.3921 < 2.2e-16 ***
## cold_weather 1 0.7 0.7 4.3623 0.0367522 *
## forty1 1 5442.0 5442.0 36048.5596 < 2.2e-16 ***
## ARI 1 0.4 0.4 2.8024 0.0941360 .
## BUF 1 0.5 0.5 3.6101 0.0574397 .
## CAR 1 10.9 10.9 71.9797 < 2.2e-16 ***
## CHI 1 0.1 0.1 0.6070 0.4359401
## CIN 1 4.2 4.2 27.8127 1.347e-07 ***
## CLE 1 1.9 1.9 12.7879 0.0003495 ***
## GB 1 0.0 0.0 0.0314 0.8593892
## HOU 1 15.1 15.1 100.2842 < 2.2e-16 ***
## IND 1 11.3 11.3 74.6888 < 2.2e-16 ***
## JAC 1 0.0 0.0 0.0713 0.7895004
## MIA 1 0.6 0.6 3.8769 0.0489650 *
## MINN 1 1.9 1.9 12.5342 0.0004002 ***
## NE 1 34.2 34.2 226.3528 < 2.2e-16 ***
## NYG 1 7.3 7.3 48.0341 4.281e-12 ***
## NYJ 1 0.8 0.8 5.1984 0.0226151 *
## OAK 1 0.1 0.1 0.9377 0.3328731
## STL 1 26.8 26.8 177.4989 < 2.2e-16 ***
## TB 1 3.2 3.2 20.8947 4.874e-06 ***
## TEN 1 5.7 5.7 38.0459 7.006e-10 ***
## avg_rectd_plyr 1 1872.3 1872.3 12402.0890 < 2.2e-16 ***
## avg_rbry_pos 1 311.0 311.0 2060.3374 < 2.2e-16 ***
## avg_fuml_plyr 1 5371.6 5371.6 35582.4880 < 2.2e-16 ***
## avg_qbtdp_plyr 1 7909.1 7909.1 52391.3106 < 2.2e-16 ***
## bad_weather_1 1 0.7 0.7 4.9178 0.0265890 *
## Residuals 27455 4144.7 0.2
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
AIC:
aic_py <- step(lm(pyregform, data = trainTransformedpy), direction = "backward")
summary(aic_py)
##
## Call:
## lm(formula = py ~ height + weight + cold_weather + forty1 + vertical1 +
## CIN + CLE + DAL + GB + HOU + IND + KC + MINN + NE + NOR +
## NYG + PHI + SD + TB + WAS + avg_rectd_plyr + avg_rbry_plyr +
## avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1,
## data = trainTransformedpy)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.0344 -0.0516 -0.0127 0.0292 4.9231
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.213e-15 2.338e-03 0.000 1.000000
## height 4.383e-02 4.494e-03 9.751 < 2e-16 ***
## weight -2.563e-02 4.233e-03 -6.055 1.42e-09 ***
## cold_weather -6.724e-03 2.405e-03 -2.796 0.005171 **
## forty1 1.430e-02 4.006e-03 3.571 0.000356 ***
## vertical1 -1.174e-02 3.066e-03 -3.830 0.000128 ***
## CIN -4.212e-03 2.374e-03 -1.774 0.076064 .
## CLE 7.060e-03 2.384e-03 2.962 0.003062 **
## DAL -9.284e-03 2.375e-03 -3.910 9.25e-05 ***
## GB -1.616e-02 2.401e-03 -6.731 1.72e-11 ***
## HOU 8.505e-03 2.381e-03 3.573 0.000354 ***
## IND -4.031e-03 2.374e-03 -1.698 0.089493 .
## KC 4.665e-03 2.374e-03 1.965 0.049377 *
## MINN 4.749e-03 2.377e-03 1.998 0.045780 *
## NE -1.250e-02 2.433e-03 -5.138 2.80e-07 ***
## NOR -9.370e-03 2.392e-03 -3.918 8.97e-05 ***
## NYG -6.801e-03 2.377e-03 -2.861 0.004230 **
## PHI 8.350e-03 2.372e-03 3.520 0.000432 ***
## SD -9.069e-03 2.376e-03 -3.817 0.000135 ***
## TB -3.595e-03 2.372e-03 -1.516 0.129597
## WAS 7.999e-03 2.380e-03 3.361 0.000779 ***
## avg_rectd_plyr -1.617e-02 2.960e-03 -5.464 4.70e-08 ***
## avg_rbry_plyr -2.425e-02 3.561e-03 -6.808 1.01e-11 ***
## avg_rbry_pos 1.291e-02 4.144e-03 3.115 0.001843 **
## avg_fuml_plyr 7.679e-02 3.436e-03 22.350 < 2e-16 ***
## avg_qbtdp_plyr 8.465e-01 3.728e-03 227.053 < 2e-16 ***
## bad_weather_1 -5.346e-03 2.371e-03 -2.255 0.024141 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3876 on 27457 degrees of freedom
## Multiple R-squared: 0.8499, Adjusted R-squared: 0.8497
## F-statistic: 5979 on 26 and 27457 DF, p-value: < 2.2e-16
RandomForest:
forest_py <- randomForest(pyregform, data = trainTransformedpy,
importance = TRUE, ntree = 500)
plot(forest_py)
varImpPlot(forest_py)
Conclusion, this predicts well, but it seems like this could be driven by some chance. QB statistics remind me of baseball statistics. One batter vs One pitcher. A QB is really like a pitcher or a batter. The opponent is more complex, however one side of the equation is “controlled”.
PreProcess:
set.seed(123)
splitpc <- sample.split(nfl_data$pc, SplitRatio = 0.7)
Trainpc <- subset(nfl_data, split == TRUE)
Testpc <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(Trainpc, method = c("center", "scale"))
trainTransformedpc <- predict(preProcValues, Trainpc)
testTransformedpc <- predict(preProcValues, Testpc)
ggpairs:
ggpairs(nfl_data[,c("pc",colnames(filtered_nfl_data_fields[1:9]))])
ggpairs(nfl_data[,c("pc",colnames(filtered_nfl_data_fields[10:18]))])
ggpairs(nfl_data[,c("pc",colnames(filtered_nfl_data_fields[19:27]))])
ggpairs(nfl_data[,c("pc",colnames(filtered_nfl_data_fields[28:36]))])
ggpairs(nfl_data[,c("pc",colnames(filtered_nfl_data_fields[37:45]))])
ggpairs(nfl_data[,c("pc",colnames(filtered_nfl_data_fields[46:51]))])
pcregform <- formula(paste("pc ~ ",
paste(colnames(filtered_nfl_data_fields), collapse="+")))
linRegQBpc <- lm(pcregform, data = trainTransformedpc)
summary(linRegQBpc)
linRegQBpc2 <- update(linRegQBpc, ~.-hot_weather-home_team_1-vertical1-ATL-BAL-CIN-DAL-DEN-DET-KC
-MIA-PHI-PIT-SEA-STL-WAS-avg_trg_team-avg_tdr_team-avg_rbra_team
-avg_rbry_plyr-avg_fuml_team-avg_qbints_team-avg_qbtdp_team-grass_1 )
summary(linRegQBpc2)
##
## Call:
## lm(formula = pc ~ height + weight + cold_weather + forty1 + ARI +
## BUF + CAR + CHI + CLE + GB + HOU + IND + JAC + MINN + NE +
## NOR + NYG + NYJ + OAK + SD + TB + TEN + avg_rectd_plyr +
## avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1,
## data = trainTransformedpc)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.2398 -0.0575 -0.0124 0.0294 4.6660
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 7.666e-16 2.298e-03 0.000 1.000000
## height 4.709e-02 4.435e-03 10.619 < 2e-16 ***
## weight -3.546e-02 4.143e-03 -8.558 < 2e-16 ***
## cold_weather -5.546e-03 2.366e-03 -2.344 0.019063 *
## forty1 3.370e-02 3.324e-03 10.139 < 2e-16 ***
## ARI 1.021e-03 2.347e-03 0.435 0.663685
## BUF 3.111e-03 2.346e-03 1.326 0.184868
## CAR -3.434e-03 2.345e-03 -1.464 0.143092
## CHI -4.221e-03 2.347e-03 -1.798 0.072184 .
## CLE 7.582e-03 2.354e-03 3.221 0.001279 **
## GB -1.833e-02 2.367e-03 -7.744 9.98e-15 ***
## HOU 7.470e-03 2.354e-03 3.173 0.001512 **
## IND -5.380e-03 2.344e-03 -2.295 0.021764 *
## JAC 6.082e-04 2.343e-03 0.260 0.795205
## MINN 6.319e-03 2.350e-03 2.689 0.007163 **
## NE -1.631e-02 2.395e-03 -6.809 1.00e-11 ***
## NOR -7.575e-03 2.363e-03 -3.205 0.001350 **
## NYG -8.832e-03 2.348e-03 -3.761 0.000169 ***
## NYJ -4.421e-03 2.345e-03 -1.885 0.059386 .
## OAK -1.986e-03 2.360e-03 -0.841 0.400133
## SD -1.167e-02 2.347e-03 -4.973 6.63e-07 ***
## TB -6.022e-03 2.346e-03 -2.568 0.010247 *
## TEN -3.866e-03 2.346e-03 -1.648 0.099462 .
## avg_rectd_plyr -1.860e-02 2.908e-03 -6.396 1.62e-10 ***
## avg_rbry_pos -5.369e-04 3.417e-03 -0.157 0.875164
## avg_fuml_plyr 7.127e-02 3.185e-03 22.374 < 2e-16 ***
## avg_qbtdp_plyr 8.468e-01 3.635e-03 232.924 < 2e-16 ***
## bad_weather_1 -5.320e-03 2.332e-03 -2.281 0.022535 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3809 on 27456 degrees of freedom
## Multiple R-squared: 0.855, Adjusted R-squared: 0.8549
## F-statistic: 5998 on 27 and 27456 DF, p-value: < 2.2e-16
Again, R2 is very strong, model stays strong when model is shrunk to 8 variables. Not surprising (to me) bad weather and cold weather hurt completions. It is harder to throw a ball in bad weather and catch a ball in bad weather.
Testing the data, we see that the training set and the test set are similar. The model seems to hold up through testing
PcPredicted <- predict(linRegQBpc2, newdata = testTransformedpc)
SSEpc <- sum((PcPredicted - testTransformedpc$pc)^2)
SSTpc <- sum((mean(c(testTransformedpc$pc,trainTransformedpc$pc))-testTransformedpc$pc)^2)
r2_pc <- 1 - SSEpc/SSTpc
r2_pc
## [1] 0.8491587
rmse_pc <- sqrt(SSEpc/nrow(testTransformedpc))
rmse_pc
## [1] 0.3924396
Regression plots:
par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegQBpc2, which = c(1:3,5))
Very similar problems/characteristics as we saw in yards
Summary statistics:
confint(linRegQBpc2)
## 2.5 % 97.5 %
## (Intercept) -0.004503758 0.0045037581
## height 0.038398997 0.0557838535
## weight -0.043577952 -0.0273367386
## cold_weather -0.010182362 -0.0009092848
## forty1 0.027185053 0.0402147931
## ARI -0.003579930 0.0056211955
## BUF -0.001487868 0.0077103207
## CAR -0.008031261 0.0011623957
## CHI -0.008821661 0.0003803371
## CLE 0.002968402 0.0121965425
## GB -0.022967535 -0.0136892607
## HOU 0.002855127 0.0120843132
## IND -0.009974835 -0.0007843123
## JAC -0.003984834 0.0052013096
## MINN 0.001713726 0.0109249709
## NE -0.020998638 -0.0116116817
## NOR -0.012207381 -0.0029431848
## NYG -0.013434167 -0.0042295072
## NYJ -0.009016369 0.0001750304
## OAK -0.006612556 0.0026404775
## SD -0.016274935 -0.0070726373
## TB -0.010619902 -0.0014249439
## TEN -0.008464463 0.0007332893
## avg_rectd_plyr -0.024300118 -0.0129002712
## avg_rbry_pos -0.007235219 0.0061614368
## avg_fuml_plyr 0.065021908 0.0775083344
## avg_qbtdp_plyr 0.839643262 0.8538943403
## bad_weather_1 -0.009890038 -0.0007491984
coef(summary(linRegQBpc2))
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 7.666331e-16 0.002297777 3.336412e-13 1.000000e+00
## height 4.709143e-02 0.004434798 1.061862e+01 2.745893e-26
## weight -3.545735e-02 0.004143060 -8.558250e+00 1.204789e-17
## cold_weather -5.545823e-03 0.002365520 -2.344441e+00 1.906269e-02
## forty1 3.369992e-02 0.003323828 1.013889e+01 4.094619e-24
## ARI 1.020633e-03 0.002347165 4.348364e-01 6.636846e-01
## BUF 3.111226e-03 0.002346417 1.325948e+00 1.848680e-01
## CAR -3.434433e-03 0.002345260 -1.464414e+00 1.430922e-01
## CHI -4.220662e-03 0.002347388 -1.798025e+00 7.218407e-02
## CLE 7.582472e-03 0.002354057 3.221023e+00 1.278825e-03
## GB -1.832840e-02 0.002366846 -7.743807e+00 9.979816e-15
## HOU 7.469720e-03 0.002354324 3.172767e+00 1.511602e-03
## IND -5.379574e-03 0.002344461 -2.294589e+00 2.176421e-02
## JAC 6.082379e-04 0.002343344 2.595598e-01 7.952053e-01
## MINN 6.319349e-03 0.002349747 2.689374e+00 7.162938e-03
## NE -1.630516e-02 0.002394570 -6.809222e+00 1.001490e-11
## NOR -7.575283e-03 0.002363254 -3.205445e+00 1.350080e-03
## NYG -8.831837e-03 0.002348067 -3.761322e+00 1.693684e-04
## NYJ -4.420669e-03 0.002344684 -1.885400e+00 5.938634e-02
## OAK -1.986039e-03 0.002360407 -8.413970e-01 4.001329e-01
## SD -1.167379e-02 0.002347465 -4.972934e+00 6.634458e-07
## TB -6.022423e-03 0.002345592 -2.567549e+00 1.024728e-02
## TEN -3.865587e-03 0.002346305 -1.647521e+00 9.946244e-02
## avg_rectd_plyr -1.860019e-02 0.002908049 -6.396107e+00 1.619528e-10
## avg_rbry_pos -5.368910e-04 0.003417426 -1.571039e-01 8.751641e-01
## avg_fuml_plyr 7.126512e-02 0.003185231 2.237361e+01 6.839892e-110
## avg_qbtdp_plyr 8.467688e-01 0.003635386 2.329241e+02 0.000000e+00
## bad_weather_1 -5.319618e-03 0.002331787 -2.281348e+00 2.253546e-02
anova(linRegQBpc2)
## Analysis of Variance Table
##
## Response: pc
## Df Sum Sq Mean Sq F value Pr(>F)
## height 1 1882.8 1882.8 12974.7620 < 2.2e-16 ***
## weight 1 461.2 461.2 3178.5347 < 2.2e-16 ***
## cold_weather 1 0.5 0.5 3.7567 0.052607 .
## forty1 1 5589.0 5589.0 38515.7304 < 2.2e-16 ***
## ARI 1 0.3 0.3 2.1068 0.146660
## BUF 1 0.9 0.9 6.3007 0.012075 *
## CAR 1 6.9 6.9 47.7623 4.917e-12 ***
## CHI 1 0.2 0.2 1.2414 0.265216
## CLE 1 1.1 1.1 7.2861 0.006953 **
## GB 1 0.0 0.0 0.0309 0.860535
## HOU 1 13.9 13.9 95.9656 < 2.2e-16 ***
## IND 1 11.5 11.5 79.0848 < 2.2e-16 ***
## JAC 1 0.1 0.1 0.9519 0.329253
## MINN 1 0.4 0.4 2.9212 0.087437 .
## NE 1 36.9 36.9 254.3033 < 2.2e-16 ***
## NOR 1 16.0 16.0 110.5203 < 2.2e-16 ***
## NYG 1 6.4 6.4 43.9986 3.347e-11 ***
## NYJ 1 0.4 0.4 3.0309 0.081702 .
## OAK 1 0.8 0.8 5.7241 0.016740 *
## SD 1 12.4 12.4 85.4687 < 2.2e-16 ***
## TB 1 2.3 2.3 15.6288 7.727e-05 ***
## TEN 1 4.4 4.4 30.1061 4.127e-08 ***
## avg_rectd_plyr 1 1862.7 1862.7 12836.4447 < 2.2e-16 ***
## avg_rbry_pos 1 322.4 322.4 2221.7472 < 2.2e-16 ***
## avg_fuml_plyr 1 5391.9 5391.9 37157.5723 < 2.2e-16 ***
## avg_qbtdp_plyr 1 7872.6 7872.6 54252.8371 < 2.2e-16 ***
## bad_weather_1 1 0.8 0.8 5.2046 0.022535 *
## Residuals 27456 3984.1 0.1
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
AIC:
aic_pc <- step(lm(pcregform, data = trainTransformedpc), direction = "backward")
## Start: AIC=-53141.63
## pc ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr +
## avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_fuml_team + avg_qbints_team + avg_qbtdp_plyr +
## avg_qbtdp_team + grass_1 + bad_weather_1
##
##
## Step: AIC=-53141.63
## pc ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr +
## avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_fuml_team + avg_qbints_team + avg_qbtdp_plyr +
## grass_1 + bad_weather_1
##
##
## Step: AIC=-53141.63
## pc ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr +
## avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_fuml_team + avg_qbtdp_plyr + grass_1 +
## bad_weather_1
##
##
## Step: AIC=-53141.63
## pc ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr +
## avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
##
##
## Step: AIC=-53141.63
## pc ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr +
## avg_tdr_team + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr +
## avg_qbtdp_plyr + grass_1 + bad_weather_1
##
##
## Step: AIC=-53141.63
## pc ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr +
## avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr +
## grass_1 + bad_weather_1
##
##
## Step: AIC=-53141.63
## pc ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## SEA + STL + TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr +
## avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + grass_1 +
## bad_weather_1
##
## Df Sum of Sq RSS AIC
## - SEA 1 0.0 3961.8 -53144
## - BAL 1 0.0 3961.8 -53144
## - home_team_1 1 0.0 3961.8 -53144
## - MIA 1 0.0 3961.8 -53144
## - ARI 1 0.0 3961.8 -53144
## - JAC 1 0.0 3961.9 -53144
## - BUF 1 0.1 3961.9 -53143
## - grass_1 1 0.1 3961.9 -53143
## - DET 1 0.1 3961.9 -53143
## - PIT 1 0.1 3961.9 -53143
## - hot_weather 1 0.1 3961.9 -53143
## - STL 1 0.1 3962.0 -53143
## - CAR 1 0.1 3962.0 -53143
## - CIN 1 0.1 3962.0 -53143
## - OAK 1 0.2 3962.0 -53143
## - NYJ 1 0.2 3962.1 -53142
## - ATL 1 0.2 3962.1 -53142
## - TEN 1 0.2 3962.1 -53142
## <none> 3961.8 -53142
## - CHI 1 0.3 3962.2 -53141
## - WAS 1 0.4 3962.3 -53141
## - DEN 1 0.5 3962.3 -53141
## - IND 1 0.5 3962.3 -53140
## - PHI 1 0.5 3962.4 -53140
## - KC 1 0.5 3962.4 -53140
## - TB 1 0.7 3962.5 -53139
## - MINN 1 0.7 3962.5 -53139
## - bad_weather_1 1 0.7 3962.5 -53139
## - HOU 1 0.8 3962.6 -53138
## - CLE 1 0.8 3962.6 -53138
## - cold_weather 1 0.9 3962.7 -53137
## - NOR 1 1.0 3962.9 -53136
## - NYG 1 1.4 3963.2 -53134
## - DAL 1 1.4 3963.3 -53134
## - SD 1 2.2 3964.1 -53128
## - avg_rbry_pos 1 3.1 3965.0 -53122
## - forty1 1 3.4 3965.2 -53120
## - NE 1 3.7 3965.5 -53118
## - vertical1 1 3.9 3965.7 -53117
## - avg_rectd_plyr 1 4.1 3966.0 -53115
## - GB 1 4.8 3966.7 -53110
## - weight 1 9.1 3970.9 -53081
## - avg_rbry_plyr 1 10.7 3972.6 -53069
## - height 1 17.4 3979.2 -53024
## - avg_fuml_plyr 1 79.6 4041.4 -52597
## - avg_qbtdp_plyr 1 7597.8 11559.6 -23714
##
## Step: AIC=-53143.63
## pc ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## STL + TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - BAL 1 0.0 3961.8 -53146
## - home_team_1 1 0.0 3961.8 -53146
## - ARI 1 0.0 3961.8 -53146
## - MIA 1 0.0 3961.8 -53146
## - JAC 1 0.0 3961.9 -53145
## - grass_1 1 0.1 3961.9 -53145
## - BUF 1 0.1 3961.9 -53145
## - hot_weather 1 0.1 3961.9 -53145
## - DET 1 0.1 3962.0 -53145
## - PIT 1 0.1 3962.0 -53145
## - STL 1 0.2 3962.0 -53145
## - CAR 1 0.2 3962.0 -53144
## - CIN 1 0.2 3962.0 -53144
## - OAK 1 0.2 3962.0 -53144
## <none> 3961.8 -53144
## - NYJ 1 0.3 3962.1 -53144
## - ATL 1 0.3 3962.1 -53144
## - TEN 1 0.3 3962.2 -53143
## - CHI 1 0.4 3962.3 -53143
## - WAS 1 0.6 3962.4 -53142
## - DEN 1 0.6 3962.4 -53142
## - IND 1 0.6 3962.5 -53141
## - PHI 1 0.7 3962.5 -53141
## - KC 1 0.7 3962.5 -53141
## - bad_weather_1 1 0.7 3962.5 -53141
## - TB 1 0.9 3962.7 -53140
## - MINN 1 0.9 3962.7 -53139
## - cold_weather 1 0.9 3962.7 -53139
## - HOU 1 1.0 3962.9 -53138
## - CLE 1 1.1 3962.9 -53138
## - NOR 1 1.4 3963.3 -53136
## - NYG 1 1.9 3963.7 -53133
## - DAL 1 1.9 3963.7 -53133
## - SD 1 2.9 3964.8 -53125
## - avg_rbry_pos 1 3.1 3965.0 -53124
## - forty1 1 3.4 3965.2 -53122
## - vertical1 1 3.9 3965.7 -53119
## - avg_rectd_plyr 1 4.1 3966.0 -53117
## - NE 1 5.0 3966.8 -53111
## - GB 1 6.5 3968.3 -53101
## - weight 1 9.1 3970.9 -53083
## - avg_rbry_plyr 1 10.7 3972.6 -53071
## - height 1 17.4 3979.2 -53026
## - avg_fuml_plyr 1 79.6 4041.5 -52599
## - avg_qbtdp_plyr 1 7604.3 11566.1 -23700
##
## Step: AIC=-53145.63
## pc ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BUF + CAR + CHI + CIN +
## CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + MIA +
## MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + STL +
## TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - home_team_1 1 0.0 3961.8 -53148
## - MIA 1 0.0 3961.8 -53148
## - ARI 1 0.0 3961.8 -53148
## - JAC 1 0.0 3961.9 -53147
## - grass_1 1 0.1 3961.9 -53147
## - BUF 1 0.1 3961.9 -53147
## - hot_weather 1 0.1 3961.9 -53147
## - DET 1 0.2 3962.0 -53147
## - PIT 1 0.2 3962.0 -53147
## - STL 1 0.2 3962.0 -53146
## - CAR 1 0.2 3962.1 -53146
## - CIN 1 0.2 3962.1 -53146
## - OAK 1 0.2 3962.1 -53146
## <none> 3961.8 -53146
## - NYJ 1 0.3 3962.2 -53145
## - ATL 1 0.3 3962.2 -53145
## - TEN 1 0.4 3962.2 -53145
## - CHI 1 0.5 3962.3 -53144
## - WAS 1 0.7 3962.5 -53143
## - DEN 1 0.7 3962.5 -53143
## - bad_weather_1 1 0.7 3962.5 -53143
## - IND 1 0.7 3962.5 -53143
## - PHI 1 0.7 3962.6 -53142
## - KC 1 0.8 3962.6 -53142
## - cold_weather 1 0.9 3962.7 -53141
## - TB 1 1.0 3962.8 -53141
## - MINN 1 1.0 3962.8 -53141
## - HOU 1 1.2 3963.0 -53140
## - CLE 1 1.2 3963.0 -53139
## - NOR 1 1.6 3963.4 -53136
## - NYG 1 2.1 3963.9 -53133
## - DAL 1 2.1 3964.0 -53133
## - avg_rbry_pos 1 3.1 3965.0 -53126
## - SD 1 3.3 3965.1 -53125
## - forty1 1 3.4 3965.2 -53124
## - vertical1 1 3.9 3965.7 -53121
## - avg_rectd_plyr 1 4.1 3966.0 -53119
## - NE 1 5.6 3967.4 -53109
## - GB 1 7.3 3969.2 -53097
## - weight 1 9.1 3970.9 -53085
## - avg_rbry_plyr 1 10.7 3972.6 -53073
## - height 1 17.4 3979.2 -53027
## - avg_fuml_plyr 1 79.6 4041.5 -52601
## - avg_qbtdp_plyr 1 7605.8 11567.7 -23698
##
## Step: AIC=-53147.6
## pc ~ height + weight + cold_weather + hot_weather + forty1 +
## vertical1 + ARI + ATL + BUF + CAR + CHI + CIN + CLE + DAL +
## DEN + DET + GB + HOU + IND + JAC + KC + MIA + MINN + NE +
## NOR + NYG + NYJ + OAK + PHI + PIT + SD + STL + TB + TEN +
## WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr +
## avg_qbtdp_plyr + grass_1 + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - ARI 1 0.0 3961.9 -53150
## - MIA 1 0.0 3961.9 -53150
## - JAC 1 0.0 3961.9 -53149
## - grass_1 1 0.1 3961.9 -53149
## - BUF 1 0.1 3961.9 -53149
## - hot_weather 1 0.1 3962.0 -53149
## - DET 1 0.1 3962.0 -53149
## - PIT 1 0.2 3962.0 -53148
## - STL 1 0.2 3962.0 -53148
## - CAR 1 0.2 3962.1 -53148
## - CIN 1 0.2 3962.1 -53148
## - OAK 1 0.2 3962.1 -53148
## <none> 3961.8 -53148
## - ATL 1 0.3 3962.2 -53147
## - NYJ 1 0.3 3962.2 -53147
## - TEN 1 0.4 3962.2 -53147
## - CHI 1 0.5 3962.3 -53146
## - WAS 1 0.7 3962.5 -53145
## - DEN 1 0.7 3962.5 -53145
## - IND 1 0.7 3962.5 -53145
## - bad_weather_1 1 0.7 3962.5 -53145
## - PHI 1 0.7 3962.6 -53144
## - KC 1 0.8 3962.6 -53144
## - cold_weather 1 0.9 3962.8 -53143
## - TB 1 1.0 3962.8 -53143
## - MINN 1 1.0 3962.8 -53143
## - CLE 1 1.2 3963.0 -53141
## - HOU 1 1.2 3963.0 -53141
## - NOR 1 1.6 3963.4 -53138
## - NYG 1 2.1 3963.9 -53135
## - DAL 1 2.1 3964.0 -53135
## - avg_rbry_pos 1 3.1 3965.0 -53128
## - SD 1 3.3 3965.1 -53127
## - forty1 1 3.4 3965.2 -53126
## - vertical1 1 3.9 3965.7 -53123
## - avg_rectd_plyr 1 4.1 3966.0 -53121
## - NE 1 5.6 3967.5 -53111
## - GB 1 7.3 3969.2 -53099
## - weight 1 9.1 3970.9 -53087
## - avg_rbry_plyr 1 10.7 3972.6 -53075
## - height 1 17.4 3979.2 -53029
## - avg_fuml_plyr 1 79.6 4041.5 -52603
## - avg_qbtdp_plyr 1 7606.0 11567.8 -23700
##
## Step: AIC=-53149.56
## pc ~ height + weight + cold_weather + hot_weather + forty1 +
## vertical1 + ATL + BUF + CAR + CHI + CIN + CLE + DAL + DEN +
## DET + GB + HOU + IND + JAC + KC + MIA + MINN + NE + NOR +
## NYG + NYJ + OAK + PHI + PIT + SD + STL + TB + TEN + WAS +
## avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr +
## avg_qbtdp_plyr + grass_1 + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - MIA 1 0.0 3961.9 -53151
## - JAC 1 0.0 3961.9 -53151
## - grass_1 1 0.1 3961.9 -53151
## - BUF 1 0.1 3962.0 -53151
## - hot_weather 1 0.1 3962.0 -53151
## - DET 1 0.1 3962.0 -53151
## - PIT 1 0.2 3962.0 -53150
## - STL 1 0.2 3962.1 -53150
## - CAR 1 0.2 3962.1 -53150
## - CIN 1 0.2 3962.1 -53150
## - OAK 1 0.2 3962.1 -53150
## <none> 3961.9 -53150
## - ATL 1 0.3 3962.2 -53149
## - NYJ 1 0.3 3962.2 -53149
## - TEN 1 0.4 3962.2 -53149
## - CHI 1 0.5 3962.3 -53148
## - DEN 1 0.7 3962.5 -53147
## - bad_weather_1 1 0.7 3962.6 -53147
## - IND 1 0.7 3962.6 -53147
## - WAS 1 0.7 3962.6 -53147
## - PHI 1 0.8 3962.7 -53146
## - KC 1 0.8 3962.7 -53146
## - cold_weather 1 0.9 3962.8 -53145
## - TB 1 1.0 3962.8 -53145
## - MINN 1 1.1 3962.9 -53144
## - CLE 1 1.3 3963.1 -53143
## - HOU 1 1.3 3963.2 -53142
## - NOR 1 1.7 3963.5 -53140
## - NYG 1 2.2 3964.0 -53136
## - DAL 1 2.2 3964.1 -53136
## - avg_rbry_pos 1 3.1 3965.0 -53130
## - SD 1 3.4 3965.2 -53128
## - forty1 1 3.4 3965.2 -53128
## - vertical1 1 3.9 3965.7 -53125
## - avg_rectd_plyr 1 4.1 3966.0 -53123
## - NE 1 5.8 3967.7 -53111
## - GB 1 7.7 3969.5 -53098
## - weight 1 9.1 3970.9 -53089
## - avg_rbry_plyr 1 10.7 3972.6 -53077
## - height 1 17.4 3979.2 -53031
## - avg_fuml_plyr 1 79.7 4041.5 -52604
## - avg_qbtdp_plyr 1 7617.6 11579.4 -23674
##
## Step: AIC=-53151.48
## pc ~ height + weight + cold_weather + hot_weather + forty1 +
## vertical1 + ATL + BUF + CAR + CHI + CIN + CLE + DAL + DEN +
## DET + GB + HOU + IND + JAC + KC + MINN + NE + NOR + NYG +
## NYJ + OAK + PHI + PIT + SD + STL + TB + TEN + WAS + avg_rectd_plyr +
## avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr +
## grass_1 + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - JAC 1 0.0 3961.9 -53153
## - grass_1 1 0.1 3961.9 -53153
## - BUF 1 0.1 3962.0 -53153
## - hot_weather 1 0.1 3962.0 -53153
## - DET 1 0.2 3962.0 -53152
## - PIT 1 0.2 3962.0 -53152
## - STL 1 0.2 3962.1 -53152
## - CAR 1 0.2 3962.1 -53152
## - CIN 1 0.2 3962.1 -53152
## - OAK 1 0.3 3962.1 -53152
## <none> 3961.9 -53151
## - ATL 1 0.4 3962.2 -53151
## - NYJ 1 0.4 3962.2 -53151
## - TEN 1 0.4 3962.3 -53151
## - CHI 1 0.5 3962.4 -53150
## - bad_weather_1 1 0.7 3962.6 -53149
## - WAS 1 0.7 3962.6 -53149
## - DEN 1 0.8 3962.6 -53148
## - IND 1 0.8 3962.6 -53148
## - PHI 1 0.8 3962.7 -53148
## - KC 1 0.8 3962.7 -53148
## - cold_weather 1 0.9 3962.8 -53147
## - TB 1 1.1 3962.9 -53146
## - MINN 1 1.1 3963.0 -53146
## - CLE 1 1.3 3963.2 -53145
## - HOU 1 1.3 3963.2 -53144
## - NOR 1 1.8 3963.6 -53141
## - NYG 1 2.3 3964.2 -53137
## - DAL 1 2.4 3964.2 -53137
## - avg_rbry_pos 1 3.1 3965.0 -53132
## - forty1 1 3.4 3965.3 -53130
## - SD 1 3.6 3965.5 -53129
## - vertical1 1 3.9 3965.7 -53127
## - avg_rectd_plyr 1 4.1 3966.0 -53125
## - NE 1 6.2 3968.0 -53111
## - GB 1 8.1 3970.0 -53097
## - weight 1 9.1 3971.0 -53090
## - avg_rbry_plyr 1 10.8 3972.6 -53079
## - height 1 17.4 3979.3 -53033
## - avg_fuml_plyr 1 79.8 4041.7 -52605
## - avg_qbtdp_plyr 1 7623.0 11584.9 -23663
##
## Step: AIC=-53153.32
## pc ~ height + weight + cold_weather + hot_weather + forty1 +
## vertical1 + ATL + BUF + CAR + CHI + CIN + CLE + DAL + DEN +
## DET + GB + HOU + IND + KC + MINN + NE + NOR + NYG + NYJ +
## OAK + PHI + PIT + SD + STL + TB + TEN + WAS + avg_rectd_plyr +
## avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr +
## grass_1 + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - grass_1 1 0.1 3961.9 -53155
## - BUF 1 0.1 3962.0 -53155
## - hot_weather 1 0.1 3962.0 -53155
## - STL 1 0.2 3962.1 -53154
## - DET 1 0.2 3962.1 -53154
## - PIT 1 0.2 3962.1 -53154
## - CIN 1 0.3 3962.2 -53153
## - CAR 1 0.3 3962.2 -53153
## <none> 3961.9 -53153
## - OAK 1 0.3 3962.2 -53153
## - ATL 1 0.4 3962.3 -53153
## - NYJ 1 0.4 3962.3 -53153
## - TEN 1 0.4 3962.3 -53152
## - CHI 1 0.6 3962.5 -53151
## - WAS 1 0.7 3962.6 -53150
## - bad_weather_1 1 0.7 3962.6 -53150
## - PHI 1 0.8 3962.7 -53150
## - KC 1 0.8 3962.7 -53150
## - DEN 1 0.8 3962.7 -53150
## - IND 1 0.8 3962.7 -53150
## - cold_weather 1 0.9 3962.8 -53149
## - MINN 1 1.1 3963.0 -53148
## - TB 1 1.1 3963.0 -53147
## - CLE 1 1.3 3963.2 -53146
## - HOU 1 1.3 3963.2 -53146
## - NOR 1 1.9 3963.8 -53142
## - NYG 1 2.4 3964.3 -53138
## - DAL 1 2.5 3964.4 -53138
## - avg_rbry_pos 1 3.1 3965.0 -53134
## - forty1 1 3.4 3965.3 -53132
## - SD 1 3.8 3965.7 -53129
## - vertical1 1 3.8 3965.7 -53129
## - avg_rectd_plyr 1 4.1 3966.0 -53127
## - NE 1 6.4 3968.3 -53111
## - GB 1 8.5 3970.4 -53096
## - weight 1 9.1 3971.0 -53092
## - avg_rbry_plyr 1 10.7 3972.6 -53081
## - height 1 17.4 3979.3 -53035
## - avg_fuml_plyr 1 79.8 4041.7 -52607
## - avg_qbtdp_plyr 1 7623.0 11584.9 -23665
##
## Step: AIC=-53154.92
## pc ~ height + weight + cold_weather + hot_weather + forty1 +
## vertical1 + ATL + BUF + CAR + CHI + CIN + CLE + DAL + DEN +
## DET + GB + HOU + IND + KC + MINN + NE + NOR + NYG + NYJ +
## OAK + PHI + PIT + SD + STL + TB + TEN + WAS + avg_rectd_plyr +
## avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr +
## bad_weather_1
##
## Df Sum of Sq RSS AIC
## - BUF 1 0.1 3962.0 -53156
## - hot_weather 1 0.1 3962.1 -53156
## - DET 1 0.2 3962.1 -53156
## - STL 1 0.2 3962.1 -53156
## - PIT 1 0.2 3962.2 -53155
## - CIN 1 0.3 3962.2 -53155
## <none> 3961.9 -53155
## - CAR 1 0.3 3962.2 -53155
## - OAK 1 0.3 3962.3 -53155
## - NYJ 1 0.4 3962.3 -53154
## - ATL 1 0.4 3962.3 -53154
## - TEN 1 0.5 3962.4 -53154
## - CHI 1 0.6 3962.6 -53153
## - WAS 1 0.7 3962.6 -53152
## - bad_weather_1 1 0.7 3962.7 -53152
## - PHI 1 0.8 3962.7 -53152
## - KC 1 0.8 3962.7 -53152
## - IND 1 0.8 3962.7 -53151
## - DEN 1 0.9 3962.8 -53151
## - cold_weather 1 1.0 3962.9 -53150
## - MINN 1 1.1 3963.1 -53149
## - TB 1 1.2 3963.1 -53149
## - CLE 1 1.2 3963.2 -53148
## - HOU 1 1.3 3963.3 -53148
## - NOR 1 1.8 3963.8 -53144
## - NYG 1 2.4 3964.3 -53140
## - DAL 1 2.4 3964.4 -53140
## - avg_rbry_pos 1 3.1 3965.1 -53135
## - forty1 1 3.4 3965.4 -53133
## - vertical1 1 3.8 3965.8 -53130
## - SD 1 3.9 3965.9 -53130
## - avg_rectd_plyr 1 4.1 3966.1 -53128
## - NE 1 6.4 3968.3 -53113
## - GB 1 8.6 3970.6 -53097
## - weight 1 9.1 3971.1 -53094
## - avg_rbry_plyr 1 10.8 3972.7 -53082
## - height 1 17.4 3979.3 -53037
## - avg_fuml_plyr 1 79.8 4041.7 -52609
## - avg_qbtdp_plyr 1 7623.0 11584.9 -23667
##
## Step: AIC=-53156.26
## pc ~ height + weight + cold_weather + hot_weather + forty1 +
## vertical1 + ATL + CAR + CHI + CIN + CLE + DAL + DEN + DET +
## GB + HOU + IND + KC + MINN + NE + NOR + NYG + NYJ + OAK +
## PHI + PIT + SD + STL + TB + TEN + WAS + avg_rectd_plyr +
## avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr +
## bad_weather_1
##
## Df Sum of Sq RSS AIC
## - hot_weather 1 0.1 3962.2 -53157
## - STL 1 0.2 3962.2 -53157
## - DET 1 0.2 3962.3 -53157
## - PIT 1 0.3 3962.3 -53156
## <none> 3962.0 -53156
## - CIN 1 0.3 3962.3 -53156
## - CAR 1 0.4 3962.4 -53156
## - OAK 1 0.4 3962.4 -53156
## - ATL 1 0.4 3962.5 -53155
## - NYJ 1 0.4 3962.5 -53155
## - TEN 1 0.5 3962.6 -53154
## - WAS 1 0.6 3962.6 -53154
## - PHI 1 0.7 3962.7 -53153
## - KC 1 0.7 3962.8 -53153
## - bad_weather_1 1 0.7 3962.8 -53153
## - CHI 1 0.7 3962.8 -53153
## - IND 1 0.9 3962.9 -53152
## - cold_weather 1 0.9 3963.0 -53152
## - DEN 1 1.0 3963.0 -53151
## - MINN 1 1.0 3963.1 -53151
## - CLE 1 1.2 3963.2 -53150
## - HOU 1 1.3 3963.3 -53149
## - TB 1 1.3 3963.3 -53149
## - NOR 1 2.0 3964.1 -53144
## - NYG 1 2.6 3964.6 -53140
## - DAL 1 2.6 3964.7 -53140
## - avg_rbry_pos 1 3.2 3965.2 -53136
## - forty1 1 3.4 3965.4 -53135
## - vertical1 1 3.9 3966.0 -53131
## - avg_rectd_plyr 1 4.1 3966.2 -53130
## - SD 1 4.2 3966.2 -53129
## - NE 1 6.7 3968.7 -53112
## - GB 1 9.1 3971.1 -53095
## - weight 1 9.2 3971.2 -53095
## - avg_rbry_plyr 1 10.8 3972.8 -53084
## - height 1 17.6 3979.6 -53037
## - avg_fuml_plyr 1 80.0 4042.0 -52609
## - avg_qbtdp_plyr 1 7628.2 11590.3 -23657
##
## Step: AIC=-53157.45
## pc ~ height + weight + cold_weather + forty1 + vertical1 + ATL +
## CAR + CHI + CIN + CLE + DAL + DEN + DET + GB + HOU + IND +
## KC + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## STL + TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - STL 1 0.2 3962.3 -53158
## - DET 1 0.2 3962.4 -53158
## - PIT 1 0.3 3962.4 -53157
## <none> 3962.2 -53157
## - CIN 1 0.3 3962.5 -53157
## - CAR 1 0.4 3962.5 -53157
## - OAK 1 0.4 3962.5 -53157
## - ATL 1 0.4 3962.6 -53156
## - NYJ 1 0.5 3962.6 -53156
## - TEN 1 0.5 3962.7 -53156
## - WAS 1 0.6 3962.8 -53155
## - CHI 1 0.7 3962.9 -53155
## - bad_weather_1 1 0.7 3962.9 -53155
## - PHI 1 0.7 3962.9 -53155
## - KC 1 0.7 3962.9 -53154
## - IND 1 0.9 3963.0 -53153
## - cold_weather 1 0.9 3963.1 -53153
## - DEN 1 1.0 3963.1 -53153
## - MINN 1 1.0 3963.2 -53152
## - CLE 1 1.2 3963.3 -53151
## - HOU 1 1.3 3963.4 -53151
## - TB 1 1.3 3963.5 -53150
## - NOR 1 2.0 3964.2 -53145
## - NYG 1 2.6 3964.7 -53142
## - DAL 1 2.6 3964.8 -53141
## - avg_rbry_pos 1 3.2 3965.3 -53137
## - forty1 1 3.4 3965.5 -53136
## - vertical1 1 3.9 3966.1 -53132
## - avg_rectd_plyr 1 4.1 3966.3 -53131
## - SD 1 4.3 3966.4 -53130
## - NE 1 6.7 3968.8 -53113
## - GB 1 9.1 3971.2 -53097
## - weight 1 9.2 3971.3 -53096
## - avg_rbry_plyr 1 10.8 3972.9 -53085
## - height 1 17.6 3979.7 -53038
## - avg_fuml_plyr 1 80.0 4042.1 -52610
## - avg_qbtdp_plyr 1 7628.5 11590.6 -23658
##
## Step: AIC=-53158.35
## pc ~ height + weight + cold_weather + forty1 + vertical1 + ATL +
## CAR + CHI + CIN + CLE + DAL + DEN + DET + GB + HOU + IND +
## KC + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - DET 1 0.3 3962.6 -53159
## <none> 3962.3 -53158
## - PIT 1 0.3 3962.7 -53158
## - CIN 1 0.4 3962.7 -53158
## - CAR 1 0.4 3962.7 -53157
## - OAK 1 0.5 3962.8 -53157
## - ATL 1 0.5 3962.8 -53157
## - NYJ 1 0.5 3962.8 -53157
## - WAS 1 0.6 3962.9 -53157
## - TEN 1 0.6 3962.9 -53156
## - PHI 1 0.6 3963.0 -53156
## - KC 1 0.6 3963.0 -53156
## - bad_weather_1 1 0.7 3963.0 -53155
## - CHI 1 0.8 3963.1 -53155
## - cold_weather 1 0.9 3963.3 -53154
## - MINN 1 1.0 3963.3 -53154
## - IND 1 1.0 3963.3 -53153
## - CLE 1 1.1 3963.4 -53153
## - DEN 1 1.1 3963.4 -53153
## - HOU 1 1.2 3963.5 -53152
## - TB 1 1.5 3963.8 -53150
## - NOR 1 2.2 3964.5 -53145
## - NYG 1 2.8 3965.1 -53141
## - DAL 1 2.8 3965.1 -53141
## - avg_rbry_pos 1 3.2 3965.5 -53138
## - forty1 1 3.4 3965.7 -53137
## - vertical1 1 4.0 3966.3 -53133
## - avg_rectd_plyr 1 4.2 3966.5 -53131
## - SD 1 4.5 3966.9 -53129
## - NE 1 7.0 3969.3 -53112
## - weight 1 9.3 3971.6 -53096
## - GB 1 9.5 3971.8 -53095
## - avg_rbry_plyr 1 10.8 3973.1 -53085
## - height 1 17.6 3979.9 -53038
## - avg_fuml_plyr 1 80.2 4042.5 -52610
## - avg_qbtdp_plyr 1 7646.7 11609.0 -23616
##
## Step: AIC=-53158.56
## pc ~ height + weight + cold_weather + forty1 + vertical1 + ATL +
## CAR + CHI + CIN + CLE + DAL + DEN + GB + HOU + IND + KC +
## MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + TB +
## TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - PIT 1 0.3 3962.9 -53159
## <none> 3962.6 -53159
## - CIN 1 0.3 3962.9 -53158
## - CAR 1 0.4 3962.9 -53158
## - OAK 1 0.4 3963.0 -53158
## - ATL 1 0.4 3963.0 -53158
## - NYJ 1 0.5 3963.0 -53157
## - TEN 1 0.6 3963.1 -53157
## - WAS 1 0.6 3963.2 -53156
## - CHI 1 0.7 3963.3 -53156
## - bad_weather_1 1 0.7 3963.3 -53155
## - PHI 1 0.7 3963.3 -53155
## - KC 1 0.7 3963.3 -53155
## - cold_weather 1 0.9 3963.5 -53154
## - IND 1 0.9 3963.5 -53154
## - DEN 1 1.0 3963.6 -53154
## - MINN 1 1.1 3963.7 -53153
## - CLE 1 1.2 3963.8 -53152
## - HOU 1 1.3 3963.9 -53151
## - TB 1 1.4 3963.9 -53151
## - NOR 1 2.0 3964.6 -53146
## - NYG 1 2.6 3965.2 -53142
## - DAL 1 2.7 3965.2 -53142
## - avg_rbry_pos 1 3.1 3965.7 -53139
## - forty1 1 3.4 3965.9 -53137
## - vertical1 1 4.1 3966.6 -53132
## - avg_rectd_plyr 1 4.3 3966.9 -53130
## - SD 1 4.4 3966.9 -53130
## - NE 1 6.8 3969.4 -53113
## - GB 1 9.3 3971.8 -53096
## - weight 1 9.3 3971.8 -53096
## - avg_rbry_plyr 1 10.7 3973.3 -53086
## - height 1 17.7 3980.2 -53038
## - avg_fuml_plyr 1 80.0 4042.6 -52611
## - avg_qbtdp_plyr 1 7646.5 11609.0 -23618
##
## Step: AIC=-53158.57
## pc ~ height + weight + cold_weather + forty1 + vertical1 + ATL +
## CAR + CHI + CIN + CLE + DAL + DEN + GB + HOU + IND + KC +
## MINN + NE + NOR + NYG + NYJ + OAK + PHI + SD + TB + TEN +
## WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr +
## avg_qbtdp_plyr + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - CIN 1 0.3 3963.1 -53159
## <none> 3962.9 -53159
## - CAR 1 0.3 3963.2 -53159
## - OAK 1 0.3 3963.2 -53158
## - ATL 1 0.4 3963.2 -53158
## - NYJ 1 0.4 3963.2 -53158
## - TEN 1 0.5 3963.3 -53157
## - CHI 1 0.6 3963.5 -53156
## - WAS 1 0.7 3963.6 -53155
## - bad_weather_1 1 0.8 3963.6 -53155
## - IND 1 0.8 3963.7 -53155
## - PHI 1 0.8 3963.7 -53155
## - KC 1 0.9 3963.7 -53155
## - DEN 1 0.9 3963.8 -53154
## - cold_weather 1 1.0 3963.9 -53154
## - MINN 1 1.2 3964.1 -53152
## - TB 1 1.3 3964.1 -53152
## - CLE 1 1.4 3964.2 -53151
## - HOU 1 1.5 3964.3 -53150
## - NOR 1 1.9 3964.8 -53147
## - NYG 1 2.5 3965.3 -53143
## - DAL 1 2.5 3965.4 -53143
## - avg_rbry_pos 1 3.1 3965.9 -53139
## - forty1 1 3.4 3966.2 -53137
## - vertical1 1 4.1 3966.9 -53132
## - SD 1 4.2 3967.0 -53132
## - avg_rectd_plyr 1 4.4 3967.3 -53130
## - NE 1 6.6 3969.4 -53115
## - GB 1 9.0 3971.9 -53098
## - weight 1 9.2 3972.1 -53097
## - avg_rbry_plyr 1 10.7 3973.6 -53086
## - height 1 17.7 3980.5 -53038
## - avg_fuml_plyr 1 79.9 4042.7 -52612
## - avg_qbtdp_plyr 1 7646.4 11609.3 -23620
##
## Step: AIC=-53158.83
## pc ~ height + weight + cold_weather + forty1 + vertical1 + ATL +
## CAR + CHI + CLE + DAL + DEN + GB + HOU + IND + KC + MINN +
## NE + NOR + NYG + NYJ + OAK + PHI + SD + TB + TEN + WAS +
## avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr +
## avg_qbtdp_plyr + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - CAR 1 0.2 3963.4 -53159
## - OAK 1 0.3 3963.4 -53159
## <none> 3963.1 -53159
## - ATL 1 0.3 3963.4 -53159
## - NYJ 1 0.3 3963.4 -53159
## - TEN 1 0.4 3963.5 -53158
## - CHI 1 0.6 3963.7 -53157
## - IND 1 0.7 3963.8 -53156
## - bad_weather_1 1 0.8 3963.9 -53156
## - DEN 1 0.8 3963.9 -53155
## - WAS 1 0.8 3963.9 -53155
## - PHI 1 0.9 3964.0 -53154
## - KC 1 1.0 3964.1 -53154
## - cold_weather 1 1.0 3964.2 -53154
## - TB 1 1.2 3964.3 -53153
## - MINN 1 1.3 3964.4 -53152
## - CLE 1 1.5 3964.6 -53151
## - HOU 1 1.6 3964.7 -53150
## - NOR 1 1.8 3964.9 -53148
## - NYG 1 2.3 3965.5 -53145
## - DAL 1 2.4 3965.5 -53144
## - avg_rbry_pos 1 3.1 3966.2 -53139
## - forty1 1 3.3 3966.4 -53138
## - SD 1 4.0 3967.1 -53133
## - vertical1 1 4.0 3967.2 -53133
## - avg_rectd_plyr 1 4.4 3967.5 -53130
## - NE 1 6.4 3969.5 -53117
## - GB 1 8.8 3971.9 -53100
## - weight 1 9.1 3972.2 -53098
## - avg_rbry_plyr 1 10.8 3973.9 -53086
## - height 1 17.5 3980.7 -53039
## - avg_fuml_plyr 1 79.9 4043.1 -52612
## - avg_qbtdp_plyr 1 7648.3 11611.4 -23617
##
## Step: AIC=-53159.09
## pc ~ height + weight + cold_weather + forty1 + vertical1 + ATL +
## CHI + CLE + DAL + DEN + GB + HOU + IND + KC + MINN + NE +
## NOR + NYG + NYJ + OAK + PHI + SD + TB + TEN + WAS + avg_rectd_plyr +
## avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr +
## bad_weather_1
##
## Df Sum of Sq RSS AIC
## - OAK 1 0.2 3963.6 -53159
## - ATL 1 0.3 3963.6 -53159
## <none> 3963.4 -53159
## - NYJ 1 0.3 3963.6 -53159
## - TEN 1 0.4 3963.7 -53159
## - CHI 1 0.5 3963.9 -53158
## - IND 1 0.7 3964.0 -53156
## - DEN 1 0.7 3964.1 -53156
## - bad_weather_1 1 0.8 3964.1 -53156
## - WAS 1 0.9 3964.3 -53155
## - PHI 1 1.0 3964.4 -53154
## - cold_weather 1 1.0 3964.4 -53154
## - KC 1 1.0 3964.4 -53154
## - TB 1 1.1 3964.4 -53154
## - MINN 1 1.4 3964.8 -53151
## - CLE 1 1.6 3964.9 -53150
## - NOR 1 1.7 3965.1 -53149
## - HOU 1 1.7 3965.1 -53149
## - NYG 1 2.2 3965.6 -53146
## - DAL 1 2.3 3965.6 -53145
## - avg_rbry_pos 1 3.2 3966.5 -53139
## - forty1 1 3.4 3966.7 -53138
## - SD 1 3.9 3967.3 -53134
## - vertical1 1 4.1 3967.4 -53133
## - avg_rectd_plyr 1 4.4 3967.7 -53131
## - NE 1 6.2 3969.6 -53118
## - GB 1 8.6 3972.0 -53101
## - weight 1 9.3 3972.6 -53097
## - avg_rbry_plyr 1 10.9 3974.3 -53086
## - height 1 17.7 3981.0 -53039
## - avg_fuml_plyr 1 79.9 4043.3 -52612
## - avg_qbtdp_plyr 1 7649.1 11612.4 -23616
##
## Step: AIC=-53159.45
## pc ~ height + weight + cold_weather + forty1 + vertical1 + ATL +
## CHI + CLE + DAL + DEN + GB + HOU + IND + KC + MINN + NE +
## NOR + NYG + NYJ + PHI + SD + TB + TEN + WAS + avg_rectd_plyr +
## avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr +
## bad_weather_1
##
## Df Sum of Sq RSS AIC
## - ATL 1 0.2 3963.8 -53160
## - NYJ 1 0.3 3963.9 -53160
## <none> 3963.6 -53159
## - TEN 1 0.3 3963.9 -53159
## - CHI 1 0.5 3964.1 -53158
## - IND 1 0.6 3964.2 -53157
## - DEN 1 0.7 3964.3 -53157
## - bad_weather_1 1 0.8 3964.4 -53156
## - cold_weather 1 1.0 3964.6 -53155
## - WAS 1 1.0 3964.6 -53155
## - TB 1 1.0 3964.6 -53154
## - PHI 1 1.1 3964.7 -53154
## - KC 1 1.1 3964.7 -53154
## - MINN 1 1.5 3965.1 -53151
## - NOR 1 1.6 3965.2 -53150
## - CLE 1 1.7 3965.3 -53150
## - HOU 1 1.8 3965.4 -53149
## - NYG 1 2.1 3965.7 -53147
## - DAL 1 2.2 3965.8 -53146
## - avg_rbry_pos 1 3.1 3966.7 -53140
## - forty1 1 3.5 3967.1 -53137
## - SD 1 3.8 3967.4 -53135
## - vertical1 1 4.0 3967.6 -53134
## - avg_rectd_plyr 1 4.3 3967.9 -53132
## - NE 1 6.1 3969.7 -53119
## - GB 1 8.5 3972.0 -53103
## - weight 1 9.2 3972.8 -53098
## - avg_rbry_plyr 1 10.8 3974.4 -53086
## - height 1 17.5 3981.1 -53041
## - avg_fuml_plyr 1 80.2 4043.8 -52611
## - avg_qbtdp_plyr 1 7648.9 11612.5 -23618
##
## Step: AIC=-53159.75
## pc ~ height + weight + cold_weather + forty1 + vertical1 + CHI +
## CLE + DAL + DEN + GB + HOU + IND + KC + MINN + NE + NOR +
## NYG + NYJ + PHI + SD + TB + TEN + WAS + avg_rectd_plyr +
## avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr +
## bad_weather_1
##
## Df Sum of Sq RSS AIC
## - NYJ 1 0.2 3964.1 -53160
## <none> 3963.8 -53160
## - TEN 1 0.3 3964.1 -53160
## - CHI 1 0.4 3964.3 -53159
## - IND 1 0.6 3964.4 -53158
## - DEN 1 0.6 3964.5 -53157
## - bad_weather_1 1 0.8 3964.6 -53156
## - cold_weather 1 0.9 3964.8 -53155
## - TB 1 0.9 3964.8 -53155
## - WAS 1 1.1 3964.9 -53154
## - PHI 1 1.2 3965.0 -53154
## - KC 1 1.2 3965.1 -53153
## - NOR 1 1.5 3965.4 -53151
## - MINN 1 1.6 3965.5 -53151
## - CLE 1 1.8 3965.6 -53149
## - HOU 1 2.0 3965.8 -53148
## - NYG 1 2.0 3965.9 -53148
## - DAL 1 2.1 3965.9 -53147
## - avg_rbry_pos 1 3.1 3966.9 -53141
## - forty1 1 3.5 3967.3 -53138
## - SD 1 3.7 3967.5 -53136
## - vertical1 1 3.9 3967.8 -53135
## - avg_rectd_plyr 1 4.5 3968.3 -53131
## - NE 1 5.9 3969.8 -53121
## - GB 1 8.3 3972.1 -53104
## - weight 1 9.2 3973.0 -53098
## - avg_rbry_plyr 1 10.9 3974.7 -53087
## - height 1 17.7 3981.5 -53040
## - avg_fuml_plyr 1 80.7 4044.6 -52607
## - avg_qbtdp_plyr 1 7659.4 11623.2 -23595
##
## Step: AIC=-53160.2
## pc ~ height + weight + cold_weather + forty1 + vertical1 + CHI +
## CLE + DAL + DEN + GB + HOU + IND + KC + MINN + NE + NOR +
## NYG + PHI + SD + TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr +
## avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - TEN 1 0.3 3964.3 -53160
## <none> 3964.1 -53160
## - CHI 1 0.4 3964.5 -53160
## - IND 1 0.5 3964.6 -53159
## - DEN 1 0.6 3964.6 -53158
## - bad_weather_1 1 0.8 3964.8 -53157
## - TB 1 0.9 3965.0 -53156
## - cold_weather 1 1.0 3965.0 -53156
## - WAS 1 1.1 3965.2 -53154
## - PHI 1 1.3 3965.3 -53154
## - KC 1 1.3 3965.4 -53153
## - NOR 1 1.4 3965.5 -53152
## - MINN 1 1.7 3965.8 -53150
## - CLE 1 1.9 3965.9 -53149
## - NYG 1 2.0 3966.0 -53149
## - DAL 1 2.0 3966.1 -53148
## - HOU 1 2.1 3966.1 -53148
## - avg_rbry_pos 1 3.1 3967.2 -53141
## - forty1 1 3.4 3967.5 -53139
## - SD 1 3.6 3967.6 -53138
## - vertical1 1 4.1 3968.1 -53134
## - avg_rectd_plyr 1 4.4 3968.5 -53131
## - NE 1 5.8 3969.9 -53122
## - GB 1 8.1 3972.2 -53106
## - weight 1 9.2 3973.2 -53099
## - avg_rbry_plyr 1 10.9 3975.0 -53087
## - height 1 17.7 3981.7 -53040
## - avg_fuml_plyr 1 80.5 4044.6 -52609
## - avg_qbtdp_plyr 1 7669.1 11633.2 -23573
##
## Step: AIC=-53160.4
## pc ~ height + weight + cold_weather + forty1 + vertical1 + CHI +
## CLE + DAL + DEN + GB + HOU + IND + KC + MINN + NE + NOR +
## NYG + PHI + SD + TB + WAS + avg_rectd_plyr + avg_rbry_plyr +
## avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
##
## Df Sum of Sq RSS AIC
## <none> 3964.3 -53160
## - CHI 1 0.4 3964.7 -53160
## - IND 1 0.5 3964.8 -53159
## - DEN 1 0.5 3964.9 -53159
## - bad_weather_1 1 0.7 3965.1 -53157
## - TB 1 0.8 3965.2 -53157
## - cold_weather 1 0.9 3965.3 -53156
## - WAS 1 1.2 3965.5 -53154
## - PHI 1 1.3 3965.7 -53153
## - KC 1 1.4 3965.7 -53153
## - NOR 1 1.4 3965.7 -53153
## - MINN 1 1.8 3966.1 -53150
## - NYG 1 1.9 3966.2 -53149
## - DAL 1 1.9 3966.2 -53149
## - CLE 1 2.0 3966.3 -53149
## - HOU 1 2.2 3966.5 -53147
## - avg_rbry_pos 1 3.1 3967.4 -53141
## - forty1 1 3.4 3967.7 -53139
## - SD 1 3.5 3967.8 -53138
## - vertical1 1 4.1 3968.4 -53134
## - avg_rectd_plyr 1 4.4 3968.7 -53132
## - NE 1 5.7 3970.0 -53123
## - GB 1 8.0 3972.3 -53107
## - weight 1 9.1 3973.5 -53099
## - avg_rbry_plyr 1 10.9 3975.2 -53087
## - height 1 17.6 3981.9 -53041
## - avg_fuml_plyr 1 80.4 4044.7 -52611
## - avg_qbtdp_plyr 1 7679.4 11643.7 -23550
summary(aic_pc)
##
## Call:
## lm(formula = pc ~ height + weight + cold_weather + forty1 + vertical1 +
## CHI + CLE + DAL + DEN + GB + HOU + IND + KC + MINN + NE +
## NOR + NYG + PHI + SD + TB + WAS + avg_rectd_plyr + avg_rbry_plyr +
## avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1,
## data = trainTransformedpc)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.2068 -0.0552 -0.0143 0.0317 4.6776
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.082e-16 2.292e-03 0.000 1.000000
## height 4.873e-02 4.411e-03 11.047 < 2e-16 ***
## weight -3.297e-02 4.147e-03 -7.950 1.94e-15 ***
## cold_weather -6.022e-03 2.358e-03 -2.553 0.010670 *
## forty1 1.898e-02 3.928e-03 4.833 1.35e-06 ***
## vertical1 -1.607e-02 3.010e-03 -5.340 9.39e-08 ***
## CHI -3.643e-03 2.333e-03 -1.562 0.118403
## CLE 8.645e-03 2.341e-03 3.693 0.000222 ***
## DAL -8.496e-03 2.332e-03 -3.644 0.000269 ***
## DEN -4.509e-03 2.336e-03 -1.930 0.053581 .
## GB -1.755e-02 2.358e-03 -7.442 1.02e-13 ***
## HOU 9.032e-03 2.337e-03 3.865 0.000111 ***
## IND -4.202e-03 2.331e-03 -1.802 0.071503 .
## KC 7.177e-03 2.331e-03 3.079 0.002079 **
## MINN 8.242e-03 2.334e-03 3.531 0.000414 ***
## NE -1.501e-02 2.390e-03 -6.283 3.36e-10 ***
## NOR -7.247e-03 2.349e-03 -3.085 0.002037 **
## NYG -8.436e-03 2.335e-03 -3.613 0.000303 ***
## PHI 7.067e-03 2.330e-03 3.034 0.002419 **
## SD -1.141e-02 2.333e-03 -4.890 1.01e-06 ***
## TB -5.606e-03 2.329e-03 -2.407 0.016071 *
## WAS 6.781e-03 2.338e-03 2.901 0.003728 **
## avg_rectd_plyr -1.596e-02 2.905e-03 -5.495 3.94e-08 ***
## avg_rbry_plyr -3.032e-02 3.491e-03 -8.686 < 2e-16 ***
## avg_rbry_pos 1.889e-02 4.062e-03 4.649 3.35e-06 ***
## avg_fuml_plyr 7.950e-02 3.370e-03 23.591 < 2e-16 ***
## avg_qbtdp_plyr 8.434e-01 3.657e-03 230.620 < 2e-16 ***
## bad_weather_1 -5.250e-03 2.326e-03 -2.258 0.023981 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.38 on 27456 degrees of freedom
## Multiple R-squared: 0.8558, Adjusted R-squared: 0.8556
## F-statistic: 6033 on 27 and 27456 DF, p-value: < 2.2e-16
RandomForest:
forest_pc <- randomForest(pcregform, data = trainTransformedpc,
importance = TRUE, ntree = 500)
plot(forest_pc)
varImpPlot(forest_pc)
PreProcess:
set.seed(123)
splitints <- sample.split(nfl_data$ints, SplitRatio = 0.7)
Trainints <- subset(nfl_data, split == TRUE)
Testints <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(Trainints, method = c("center", "scale"))
trainTransformedints <- predict(preProcValues, Trainints)
testTransformedints <- predict(preProcValues, Testints)
ggpairs:
ggpairs(nfl_data[,c("ints",colnames(filtered_nfl_data_fields[1:9]))])
ggpairs(nfl_data[,c("ints",colnames(filtered_nfl_data_fields[10:18]))])
ggpairs(nfl_data[,c("ints",colnames(filtered_nfl_data_fields[19:27]))])
ggpairs(nfl_data[,c("ints",colnames(filtered_nfl_data_fields[28:36]))])
ggpairs(nfl_data[,c("ints",colnames(filtered_nfl_data_fields[37:45]))])
ggpairs(nfl_data[,c("ints",colnames(filtered_nfl_data_fields[46:51]))])
intsregform <- formula(paste("ints ~ ",
paste(colnames(filtered_nfl_data_fields), collapse="+")))
linRegQBInts <- lm(intsregform, data = trainTransformedints)
summary(linRegQBInts)
linRegQBInts2 <- lm(ints ~ avg_qbints_plyr, data = trainTransformedints)
summary(linRegQBInts2)
##
## Call:
## lm(formula = ints ~ avg_qbints_plyr, data = trainTransformedints)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.0750 -0.0018 -0.0018 -0.0018 11.2261
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.104e-15 4.606e-03 0.0 1
## avg_qbints_plyr 6.457e-01 4.606e-03 140.2 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.7636 on 27482 degrees of freedom
## Multiple R-squared: 0.417, Adjusted R-squared: 0.4169
## F-statistic: 1.965e+04 on 1 and 27482 DF, p-value: < 2.2e-16
R2 of 0.4169, and really the only meaningful predictor was “how many interceptions have you thrown in the past”. Not an entirely amazing model, but at least we have something here.
Testing the data, we see that the training set and the test set are similar. The model seems to hold up through testing
PintPredicted <- predict(linRegQBInts2, newdata = testTransformedints)
SSEint <- sum((PintPredicted - testTransformedints$ints)^2)
SSTint <- sum((mean(c(testTransformedints$ints,trainTransformedints$ints))-testTransformedints$ints)^2)
r2_int <- 1 - SSEint/SSTint
r2_int
## [1] 0.4479224
rmse_int <- sqrt(SSEint/nrow(testTransformedints))
rmse_int
## [1] 0.7879945
Regression plots:
par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegQBInts2, which = c(1:3,5))
Summary statistics:
confint(linRegQBInts2)
## 2.5 % 97.5 %
## (Intercept) -0.009027885 0.009027885
## avg_qbints_plyr 0.636692876 0.654748974
coef(summary(linRegQBInts2))
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.104007e-15 0.004605945 -4.568024e-13 1
## avg_qbints_plyr 6.457209e-01 0.004606029 1.401904e+02 0
anova(linRegQBInts2)
## Analysis of Variance Table
##
## Response: ints
## Df Sum Sq Mean Sq F value Pr(>F)
## avg_qbints_plyr 1 11459 11459.2 19653 < 2.2e-16 ***
## Residuals 27482 16024 0.6
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
AIC:
aic_ints <- step(lm(intsregform, data = trainTransformedints), direction = "backward")
## Start: AIC=-12530.92
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr +
## avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_fuml_team + avg_qbints_team + avg_qbtdp_plyr +
## avg_qbtdp_team + grass_1 + bad_weather_1
##
##
## Step: AIC=-12530.92
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr +
## avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_fuml_team + avg_qbints_team + avg_qbtdp_plyr +
## grass_1 + bad_weather_1
##
##
## Step: AIC=-12530.92
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr +
## avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_fuml_team + avg_qbtdp_plyr + grass_1 +
## bad_weather_1
##
##
## Step: AIC=-12530.92
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr +
## avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
##
##
## Step: AIC=-12530.92
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr +
## avg_tdr_team + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr +
## avg_qbtdp_plyr + grass_1 + bad_weather_1
##
##
## Step: AIC=-12530.92
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr +
## avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr +
## grass_1 + bad_weather_1
##
##
## Step: AIC=-12530.92
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## SEA + STL + TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr +
## avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + grass_1 +
## bad_weather_1
##
## Df Sum of Sq RSS AIC
## - KC 1 0.00 17363 -12532.9
## - TEN 1 0.00 17363 -12532.9
## - grass_1 1 0.01 17363 -12532.9
## - NYG 1 0.01 17363 -12532.9
## - TB 1 0.02 17363 -12532.9
## - CHI 1 0.02 17363 -12532.9
## - DEN 1 0.05 17363 -12532.8
## - MIA 1 0.07 17363 -12532.8
## - SEA 1 0.10 17363 -12532.8
## - hot_weather 1 0.10 17363 -12532.8
## - DET 1 0.11 17363 -12532.7
## - STL 1 0.19 17363 -12532.6
## - NOR 1 0.19 17363 -12532.6
## - DAL 1 0.25 17363 -12532.5
## - CIN 1 0.35 17363 -12532.4
## - PIT 1 0.38 17363 -12532.3
## - ATL 1 0.39 17363 -12532.3
## - IND 1 0.41 17363 -12532.3
## - SD 1 0.71 17363 -12531.8
## - BAL 1 0.81 17364 -12531.6
## - home_team_1 1 0.84 17364 -12531.6
## - cold_weather 1 0.96 17364 -12531.4
## - BUF 1 0.96 17364 -12531.4
## <none> 17363 -12530.9
## - HOU 1 1.29 17364 -12530.9
## - WAS 1 1.37 17364 -12530.7
## - vertical1 1 1.41 17364 -12530.7
## - ARI 1 1.45 17364 -12530.6
## - OAK 1 1.61 17364 -12530.4
## - NYJ 1 1.63 17364 -12530.3
## - MINN 1 1.64 17364 -12530.3
## - PHI 1 1.68 17364 -12530.3
## - bad_weather_1 1 1.85 17365 -12530.0
## - CAR 1 2.31 17365 -12529.3
## - CLE 1 2.54 17365 -12528.9
## - JAC 1 3.47 17366 -12527.4
## - avg_rbry_pos 1 3.67 17366 -12527.1
## - GB 1 4.52 17367 -12525.8
## - avg_rectd_plyr 1 7.20 17370 -12521.5
## - NE 1 7.27 17370 -12521.4
## - weight 1 9.60 17372 -12517.7
## - forty1 1 10.45 17373 -12516.4
## - height 1 19.34 17382 -12502.3
## - avg_rbry_plyr 1 30.17 17393 -12485.2
## - avg_fuml_plyr 1 238.61 17601 -12157.8
## - avg_qbtdp_plyr 1 2385.32 19748 -8994.9
##
## Step: AIC=-12532.91
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + MIA +
## MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + SEA +
## STL + TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - TEN 1 0.00 17363 -12534.9
## - NYG 1 0.00 17363 -12534.9
## - grass_1 1 0.01 17363 -12534.9
## - TB 1 0.02 17363 -12534.9
## - CHI 1 0.02 17363 -12534.9
## - MIA 1 0.07 17363 -12534.8
## - DEN 1 0.08 17363 -12534.8
## - hot_weather 1 0.10 17363 -12534.7
## - SEA 1 0.11 17363 -12534.7
## - DET 1 0.16 17363 -12534.7
## - STL 1 0.21 17363 -12534.6
## - NOR 1 0.29 17363 -12534.5
## - DAL 1 0.36 17363 -12534.3
## - CIN 1 0.42 17363 -12534.3
## - IND 1 0.50 17363 -12534.1
## - ATL 1 0.55 17363 -12534.0
## - PIT 1 0.56 17363 -12534.0
## - home_team_1 1 0.84 17364 -12533.6
## - cold_weather 1 0.96 17364 -12533.4
## - SD 1 0.98 17364 -12533.4
## - BAL 1 1.01 17364 -12533.3
## - BUF 1 1.19 17364 -12533.0
## <none> 17363 -12532.9
## - vertical1 1 1.41 17364 -12532.7
## - HOU 1 1.62 17364 -12532.4
## - WAS 1 1.74 17364 -12532.2
## - ARI 1 1.81 17365 -12532.0
## - bad_weather_1 1 1.85 17365 -12532.0
## - MINN 1 2.05 17365 -12531.7
## - NYJ 1 2.05 17365 -12531.7
## - OAK 1 2.06 17365 -12531.6
## - PHI 1 2.11 17365 -12531.6
## - CAR 1 2.94 17366 -12530.3
## - CLE 1 3.25 17366 -12529.8
## - avg_rbry_pos 1 3.68 17366 -12529.1
## - JAC 1 4.41 17367 -12527.9
## - GB 1 6.21 17369 -12525.1
## - avg_rectd_plyr 1 7.22 17370 -12523.5
## - weight 1 9.61 17372 -12519.7
## - NE 1 9.72 17372 -12519.5
## - forty1 1 10.45 17373 -12518.4
## - height 1 19.38 17382 -12504.3
## - avg_rbry_plyr 1 30.18 17393 -12487.2
## - avg_fuml_plyr 1 238.62 17601 -12159.8
## - avg_qbtdp_plyr 1 2386.52 19749 -8995.3
##
## Step: AIC=-12534.91
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + MIA +
## MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + SEA +
## STL + TB + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - NYG 1 0.00 17363 -12536.9
## - grass_1 1 0.01 17363 -12536.9
## - TB 1 0.01 17363 -12536.9
## - CHI 1 0.01 17363 -12536.9
## - MIA 1 0.07 17363 -12536.8
## - DEN 1 0.10 17363 -12536.8
## - hot_weather 1 0.10 17363 -12536.7
## - SEA 1 0.11 17363 -12536.7
## - DET 1 0.19 17363 -12536.6
## - STL 1 0.22 17363 -12536.6
## - NOR 1 0.34 17363 -12536.4
## - DAL 1 0.42 17363 -12536.2
## - CIN 1 0.44 17363 -12536.2
## - IND 1 0.53 17363 -12536.1
## - ATL 1 0.64 17363 -12535.9
## - PIT 1 0.65 17363 -12535.9
## - home_team_1 1 0.84 17364 -12535.6
## - cold_weather 1 0.96 17364 -12535.4
## - BAL 1 1.10 17364 -12535.2
## - SD 1 1.13 17364 -12535.1
## <none> 17363 -12534.9
## - BUF 1 1.28 17364 -12534.9
## - vertical1 1 1.41 17364 -12534.7
## - HOU 1 1.76 17364 -12534.1
## - bad_weather_1 1 1.85 17365 -12534.0
## - WAS 1 1.90 17365 -12533.9
## - ARI 1 1.97 17365 -12533.8
## - MINN 1 2.23 17365 -12533.4
## - NYJ 1 2.24 17365 -12533.4
## - OAK 1 2.27 17365 -12533.3
## - PHI 1 2.30 17365 -12533.3
## - CAR 1 3.23 17366 -12531.8
## - CLE 1 3.57 17366 -12531.3
## - avg_rbry_pos 1 3.68 17366 -12531.1
## - JAC 1 4.84 17368 -12529.3
## - GB 1 7.05 17370 -12525.8
## - avg_rectd_plyr 1 7.23 17370 -12525.5
## - weight 1 9.63 17372 -12521.7
## - forty1 1 10.45 17373 -12520.4
## - NE 1 10.92 17374 -12519.6
## - height 1 19.39 17382 -12506.2
## - avg_rbry_plyr 1 30.20 17393 -12489.1
## - avg_fuml_plyr 1 238.82 17602 -12161.5
## - avg_qbtdp_plyr 1 2387.65 19750 -8995.7
##
## Step: AIC=-12536.91
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + MIA +
## MINN + NE + NOR + NYJ + OAK + PHI + PIT + SD + SEA + STL +
## TB + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - grass_1 1 0.00 17363 -12538.9
## - TB 1 0.01 17363 -12538.9
## - CHI 1 0.01 17363 -12538.9
## - MIA 1 0.07 17363 -12538.8
## - hot_weather 1 0.10 17363 -12538.7
## - SEA 1 0.11 17363 -12538.7
## - DEN 1 0.12 17363 -12538.7
## - DET 1 0.22 17363 -12538.6
## - STL 1 0.22 17363 -12538.6
## - NOR 1 0.39 17363 -12538.3
## - CIN 1 0.46 17363 -12538.2
## - DAL 1 0.47 17363 -12538.2
## - IND 1 0.55 17363 -12538.0
## - ATL 1 0.71 17363 -12537.8
## - PIT 1 0.72 17363 -12537.8
## - home_team_1 1 0.84 17364 -12537.6
## - cold_weather 1 0.97 17364 -12537.4
## - BAL 1 1.16 17364 -12537.1
## - SD 1 1.23 17364 -12537.0
## <none> 17363 -12536.9
## - BUF 1 1.35 17364 -12536.8
## - vertical1 1 1.41 17364 -12536.7
## - HOU 1 1.85 17365 -12536.0
## - bad_weather_1 1 1.85 17365 -12536.0
## - WAS 1 1.98 17365 -12535.8
## - ARI 1 2.08 17365 -12535.6
## - MINN 1 2.35 17365 -12535.2
## - NYJ 1 2.37 17365 -12535.2
## - OAK 1 2.37 17365 -12535.2
## - PHI 1 2.41 17365 -12535.1
## - CAR 1 3.39 17366 -12533.5
## - avg_rbry_pos 1 3.69 17366 -12533.1
## - CLE 1 3.75 17366 -12533.0
## - JAC 1 5.07 17368 -12530.9
## - avg_rectd_plyr 1 7.23 17370 -12527.5
## - GB 1 7.66 17370 -12526.8
## - weight 1 9.63 17372 -12523.7
## - forty1 1 10.46 17373 -12522.4
## - NE 1 12.00 17375 -12519.9
## - height 1 19.40 17382 -12508.2
## - avg_rbry_plyr 1 30.22 17393 -12491.1
## - avg_fuml_plyr 1 238.82 17602 -12163.4
## - avg_qbtdp_plyr 1 2387.80 19751 -8997.5
##
## Step: AIC=-12538.9
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + MIA +
## MINN + NE + NOR + NYJ + OAK + PHI + PIT + SD + SEA + STL +
## TB + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - TB 1 0.01 17363 -12540.9
## - CHI 1 0.01 17363 -12540.9
## - MIA 1 0.07 17363 -12540.8
## - hot_weather 1 0.11 17363 -12540.7
## - SEA 1 0.11 17363 -12540.7
## - DEN 1 0.11 17363 -12540.7
## - STL 1 0.22 17363 -12540.5
## - DET 1 0.23 17363 -12540.5
## - NOR 1 0.40 17363 -12540.3
## - CIN 1 0.45 17363 -12540.2
## - DAL 1 0.49 17363 -12540.1
## - IND 1 0.54 17363 -12540.0
## - PIT 1 0.71 17363 -12539.8
## - ATL 1 0.72 17363 -12539.8
## - home_team_1 1 0.84 17364 -12539.6
## - cold_weather 1 0.98 17364 -12539.3
## - BAL 1 1.15 17364 -12539.1
## - SD 1 1.22 17364 -12539.0
## <none> 17363 -12538.9
## - BUF 1 1.35 17364 -12538.8
## - vertical1 1 1.41 17364 -12538.7
## - HOU 1 1.85 17365 -12538.0
## - bad_weather_1 1 1.86 17365 -12538.0
## - WAS 1 1.99 17365 -12537.7
## - ARI 1 2.08 17365 -12537.6
## - MINN 1 2.36 17365 -12537.2
## - NYJ 1 2.38 17365 -12537.1
## - OAK 1 2.40 17365 -12537.1
## - PHI 1 2.42 17365 -12537.1
## - CAR 1 3.40 17366 -12535.5
## - avg_rbry_pos 1 3.69 17366 -12535.1
## - CLE 1 3.77 17366 -12534.9
## - JAC 1 5.09 17368 -12532.8
## - avg_rectd_plyr 1 7.24 17370 -12529.4
## - GB 1 7.65 17370 -12528.8
## - weight 1 9.63 17372 -12525.7
## - forty1 1 10.46 17373 -12524.3
## - NE 1 12.31 17375 -12521.4
## - height 1 19.40 17382 -12510.2
## - avg_rbry_plyr 1 30.22 17393 -12493.1
## - avg_fuml_plyr 1 238.82 17602 -12165.4
## - avg_qbtdp_plyr 1 2387.94 19751 -8999.3
##
## Step: AIC=-12540.88
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + MIA +
## MINN + NE + NOR + NYJ + OAK + PHI + PIT + SD + SEA + STL +
## WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr +
## avg_qbtdp_plyr + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - CHI 1 0.01 17363 -12542.9
## - MIA 1 0.06 17363 -12542.8
## - SEA 1 0.10 17363 -12542.7
## - hot_weather 1 0.11 17363 -12542.7
## - DEN 1 0.13 17363 -12542.7
## - STL 1 0.21 17363 -12542.5
## - DET 1 0.26 17363 -12542.5
## - CIN 1 0.44 17363 -12542.2
## - NOR 1 0.45 17363 -12542.2
## - IND 1 0.53 17363 -12542.0
## - DAL 1 0.54 17363 -12542.0
## - PIT 1 0.78 17364 -12541.6
## - ATL 1 0.79 17364 -12541.6
## - home_team_1 1 0.84 17364 -12541.6
## - cold_weather 1 0.97 17364 -12541.3
## - BAL 1 1.15 17364 -12541.1
## <none> 17363 -12540.9
## - SD 1 1.32 17364 -12540.8
## - BUF 1 1.35 17364 -12540.7
## - vertical1 1 1.42 17364 -12540.6
## - bad_weather_1 1 1.86 17365 -12539.9
## - HOU 1 1.86 17365 -12539.9
## - WAS 1 2.01 17365 -12539.7
## - ARI 1 2.10 17365 -12539.6
## - MINN 1 2.38 17365 -12539.1
## - NYJ 1 2.41 17365 -12539.1
## - OAK 1 2.43 17365 -12539.0
## - PHI 1 2.44 17365 -12539.0
## - CAR 1 3.45 17366 -12537.4
## - avg_rbry_pos 1 3.69 17366 -12537.0
## - CLE 1 3.82 17367 -12536.8
## - JAC 1 5.18 17368 -12534.7
## - avg_rectd_plyr 1 7.24 17370 -12531.4
## - GB 1 8.08 17371 -12530.1
## - weight 1 9.62 17372 -12527.7
## - forty1 1 10.45 17373 -12526.3
## - NE 1 12.93 17376 -12522.4
## - height 1 19.40 17382 -12512.2
## - avg_rbry_plyr 1 30.23 17393 -12495.1
## - avg_fuml_plyr 1 238.88 17602 -12167.3
## - avg_qbtdp_plyr 1 2387.94 19751 -9001.2
##
## Step: AIC=-12542.86
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CIN +
## CLE + DAL + DEN + DET + GB + HOU + IND + JAC + MIA + MINN +
## NE + NOR + NYJ + OAK + PHI + PIT + SD + SEA + STL + WAS +
## avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr +
## avg_qbtdp_plyr + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - MIA 1 0.06 17363 -12545
## - SEA 1 0.09 17363 -12545
## - hot_weather 1 0.11 17363 -12545
## - DEN 1 0.15 17363 -12545
## - STL 1 0.20 17363 -12544
## - DET 1 0.28 17363 -12544
## - CIN 1 0.43 17363 -12544
## - NOR 1 0.48 17363 -12544
## - IND 1 0.52 17363 -12544
## - DAL 1 0.58 17363 -12544
## - PIT 1 0.83 17364 -12544
## - ATL 1 0.84 17364 -12544
## - home_team_1 1 0.84 17364 -12544
## - cold_weather 1 0.98 17364 -12543
## - BAL 1 1.15 17364 -12543
## <none> 17363 -12543
## - BUF 1 1.35 17364 -12543
## - SD 1 1.39 17364 -12543
## - vertical1 1 1.43 17364 -12543
## - bad_weather_1 1 1.87 17365 -12542
## - HOU 1 1.87 17365 -12542
## - WAS 1 2.01 17365 -12542
## - ARI 1 2.11 17365 -12542
## - MINN 1 2.39 17365 -12541
## - NYJ 1 2.42 17365 -12541
## - OAK 1 2.44 17365 -12541
## - PHI 1 2.45 17365 -12541
## - CAR 1 3.48 17366 -12539
## - avg_rbry_pos 1 3.69 17366 -12539
## - CLE 1 3.86 17367 -12539
## - JAC 1 5.23 17368 -12537
## - avg_rectd_plyr 1 7.24 17370 -12533
## - GB 1 8.41 17371 -12532
## - weight 1 9.65 17372 -12530
## - forty1 1 10.44 17373 -12528
## - NE 1 13.38 17376 -12524
## - height 1 19.48 17382 -12514
## - avg_rbry_plyr 1 30.23 17393 -12497
## - avg_fuml_plyr 1 239.10 17602 -12169
## - avg_qbtdp_plyr 1 2388.79 19752 -9002
##
## Step: AIC=-12544.78
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CIN +
## CLE + DAL + DEN + DET + GB + HOU + IND + JAC + MINN + NE +
## NOR + NYJ + OAK + PHI + PIT + SD + SEA + STL + WAS + avg_rectd_plyr +
## avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr +
## bad_weather_1
##
## Df Sum of Sq RSS AIC
## - SEA 1 0.07 17363 -12546.7
## - hot_weather 1 0.11 17363 -12546.6
## - STL 1 0.18 17363 -12546.5
## - DEN 1 0.18 17363 -12546.5
## - DET 1 0.32 17363 -12546.3
## - CIN 1 0.40 17363 -12546.1
## - IND 1 0.49 17363 -12546.0
## - NOR 1 0.54 17363 -12545.9
## - DAL 1 0.64 17363 -12545.8
## - home_team_1 1 0.84 17364 -12545.4
## - PIT 1 0.91 17364 -12545.3
## - ATL 1 0.92 17364 -12545.3
## - cold_weather 1 0.97 17364 -12545.2
## - BAL 1 1.10 17364 -12545.0
## <none> 17363 -12544.8
## - BUF 1 1.30 17364 -12544.7
## - vertical1 1 1.44 17364 -12544.5
## - SD 1 1.49 17364 -12544.4
## - HOU 1 1.82 17365 -12543.9
## - bad_weather_1 1 1.86 17365 -12543.8
## - WAS 1 1.96 17365 -12543.7
## - ARI 1 2.05 17365 -12543.5
## - MINN 1 2.33 17365 -12543.1
## - NYJ 1 2.37 17365 -12543.0
## - OAK 1 2.39 17365 -12543.0
## - PHI 1 2.40 17365 -12543.0
## - CAR 1 3.43 17366 -12541.3
## - avg_rbry_pos 1 3.71 17367 -12540.9
## - CLE 1 3.81 17367 -12540.8
## - JAC 1 5.18 17368 -12538.6
## - avg_rectd_plyr 1 7.22 17370 -12535.4
## - GB 1 8.80 17372 -12532.9
## - weight 1 9.65 17372 -12531.5
## - forty1 1 10.43 17373 -12530.3
## - NE 1 13.92 17377 -12524.7
## - height 1 19.47 17382 -12516.0
## - avg_rbry_plyr 1 30.29 17393 -12498.9
## - avg_fuml_plyr 1 239.12 17602 -12170.8
## - avg_qbtdp_plyr 1 2388.80 19752 -9003.9
##
## Step: AIC=-12546.66
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CIN +
## CLE + DAL + DEN + DET + GB + HOU + IND + JAC + MINN + NE +
## NOR + NYJ + OAK + PHI + PIT + SD + STL + WAS + avg_rectd_plyr +
## avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr +
## bad_weather_1
##
## Df Sum of Sq RSS AIC
## - hot_weather 1 0.12 17363 -12548.5
## - STL 1 0.15 17363 -12548.4
## - DEN 1 0.22 17363 -12548.3
## - CIN 1 0.36 17363 -12548.1
## - DET 1 0.37 17363 -12548.1
## - IND 1 0.45 17363 -12548.0
## - NOR 1 0.61 17363 -12547.7
## - DAL 1 0.71 17364 -12547.5
## - home_team_1 1 0.84 17364 -12547.3
## - PIT 1 1.00 17364 -12547.1
## - cold_weather 1 1.00 17364 -12547.1
## - ATL 1 1.00 17364 -12547.1
## - BAL 1 1.04 17364 -12547.0
## - BUF 1 1.24 17364 -12546.7
## <none> 17363 -12546.7
## - vertical1 1 1.43 17364 -12546.4
## - SD 1 1.60 17364 -12546.1
## - HOU 1 1.75 17365 -12545.9
## - bad_weather_1 1 1.86 17365 -12545.7
## - WAS 1 1.89 17365 -12545.7
## - ARI 1 1.99 17365 -12545.5
## - MINN 1 2.27 17365 -12545.1
## - NYJ 1 2.30 17365 -12545.0
## - OAK 1 2.32 17365 -12545.0
## - PHI 1 2.33 17365 -12545.0
## - CAR 1 3.36 17366 -12543.3
## - avg_rbry_pos 1 3.68 17367 -12542.8
## - CLE 1 3.73 17367 -12542.8
## - JAC 1 5.11 17368 -12540.6
## - avg_rectd_plyr 1 7.20 17370 -12537.3
## - GB 1 9.22 17372 -12534.1
## - weight 1 9.61 17372 -12533.5
## - forty1 1 10.41 17373 -12532.2
## - NE 1 14.49 17377 -12525.7
## - height 1 19.40 17382 -12518.0
## - avg_rbry_plyr 1 30.22 17393 -12500.9
## - avg_fuml_plyr 1 239.38 17602 -12172.3
## - avg_qbtdp_plyr 1 2400.61 19763 -8989.4
##
## Step: AIC=-12548.47
## ints ~ height + weight + cold_weather + home_team_1 + forty1 +
## vertical1 + ARI + ATL + BAL + BUF + CAR + CIN + CLE + DAL +
## DEN + DET + GB + HOU + IND + JAC + MINN + NE + NOR + NYJ +
## OAK + PHI + PIT + SD + STL + WAS + avg_rectd_plyr + avg_rbry_plyr +
## avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - STL 1 0.16 17363 -12550.2
## - DEN 1 0.21 17363 -12550.1
## - CIN 1 0.36 17363 -12549.9
## - DET 1 0.37 17363 -12549.9
## - IND 1 0.44 17363 -12549.8
## - NOR 1 0.61 17364 -12549.5
## - DAL 1 0.72 17364 -12549.3
## - home_team_1 1 0.84 17364 -12549.1
## - cold_weather 1 0.98 17364 -12548.9
## - PIT 1 0.99 17364 -12548.9
## - ATL 1 1.01 17364 -12548.9
## - BAL 1 1.03 17364 -12548.8
## - BUF 1 1.26 17364 -12548.5
## <none> 17363 -12548.5
## - vertical1 1 1.43 17364 -12548.2
## - SD 1 1.57 17365 -12548.0
## - HOU 1 1.74 17365 -12547.7
## - bad_weather_1 1 1.85 17365 -12547.5
## - WAS 1 1.88 17365 -12547.5
## - ARI 1 1.97 17365 -12547.3
## - MINN 1 2.26 17365 -12546.9
## - OAK 1 2.31 17365 -12546.8
## - PHI 1 2.32 17365 -12546.8
## - NYJ 1 2.32 17365 -12546.8
## - CAR 1 3.34 17366 -12545.2
## - avg_rbry_pos 1 3.67 17367 -12544.7
## - CLE 1 3.72 17367 -12544.6
## - JAC 1 5.09 17368 -12542.4
## - avg_rectd_plyr 1 7.20 17370 -12539.1
## - GB 1 9.24 17372 -12535.9
## - weight 1 9.63 17373 -12535.2
## - forty1 1 10.41 17373 -12534.0
## - NE 1 14.52 17378 -12527.5
## - height 1 19.42 17382 -12519.8
## - avg_rbry_plyr 1 30.19 17393 -12502.7
## - avg_fuml_plyr 1 239.37 17602 -12174.2
## - avg_qbtdp_plyr 1 2400.57 19764 -8991.3
##
## Step: AIC=-12550.23
## ints ~ height + weight + cold_weather + home_team_1 + forty1 +
## vertical1 + ARI + ATL + BAL + BUF + CAR + CIN + CLE + DAL +
## DEN + DET + GB + HOU + IND + JAC + MINN + NE + NOR + NYJ +
## OAK + PHI + PIT + SD + WAS + avg_rectd_plyr + avg_rbry_plyr +
## avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - DEN 1 0.26 17363 -12551.8
## - CIN 1 0.31 17363 -12551.7
## - IND 1 0.38 17364 -12551.6
## - DET 1 0.44 17364 -12551.5
## - NOR 1 0.69 17364 -12551.1
## - DAL 1 0.82 17364 -12550.9
## - BAL 1 0.96 17364 -12550.7
## - cold_weather 1 0.96 17364 -12550.7
## - home_team_1 1 0.96 17364 -12550.7
## - PIT 1 1.09 17364 -12550.5
## - ATL 1 1.14 17364 -12550.4
## - BUF 1 1.18 17364 -12550.4
## <none> 17363 -12550.2
## - vertical1 1 1.46 17365 -12549.9
## - HOU 1 1.63 17365 -12549.6
## - SD 1 1.69 17365 -12549.5
## - WAS 1 1.79 17365 -12549.4
## - bad_weather_1 1 1.82 17365 -12549.3
## - ARI 1 1.86 17365 -12549.3
## - MINN 1 2.15 17365 -12548.8
## - OAK 1 2.20 17365 -12548.7
## - PHI 1 2.22 17365 -12548.7
## - NYJ 1 2.22 17365 -12548.7
## - CAR 1 3.23 17366 -12547.1
## - CLE 1 3.60 17367 -12546.5
## - avg_rbry_pos 1 3.66 17367 -12546.4
## - JAC 1 4.96 17368 -12544.4
## - avg_rectd_plyr 1 7.29 17370 -12540.7
## - GB 1 9.59 17373 -12537.0
## - weight 1 9.70 17373 -12536.9
## - forty1 1 10.46 17374 -12535.7
## - NE 1 15.00 17378 -12528.5
## - height 1 19.46 17383 -12521.4
## - avg_rbry_plyr 1 30.27 17393 -12504.4
## - avg_fuml_plyr 1 239.56 17603 -12175.6
## - avg_qbtdp_plyr 1 2403.30 19766 -8989.3
##
## Step: AIC=-12551.82
## ints ~ height + weight + cold_weather + home_team_1 + forty1 +
## vertical1 + ARI + ATL + BAL + BUF + CAR + CIN + CLE + DAL +
## DET + GB + HOU + IND + JAC + MINN + NE + NOR + NYJ + OAK +
## PHI + PIT + SD + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - CIN 1 0.38 17364 -12553.2
## - DET 1 0.38 17364 -12553.2
## - IND 1 0.46 17364 -12553.1
## - NOR 1 0.61 17364 -12552.8
## - DAL 1 0.74 17364 -12552.7
## - cold_weather 1 0.93 17364 -12552.3
## - PIT 1 0.99 17364 -12552.3
## - home_team_1 1 1.00 17364 -12552.2
## - ATL 1 1.05 17364 -12552.2
## - BAL 1 1.08 17364 -12552.1
## <none> 17363 -12551.8
## - BUF 1 1.31 17365 -12551.8
## - vertical1 1 1.52 17365 -12551.4
## - SD 1 1.58 17365 -12551.3
## - HOU 1 1.77 17365 -12551.0
## - bad_weather_1 1 1.85 17365 -12550.9
## - WAS 1 1.96 17365 -12550.7
## - ARI 1 2.01 17365 -12550.6
## - MINN 1 2.32 17366 -12550.1
## - OAK 1 2.38 17366 -12550.1
## - PHI 1 2.40 17366 -12550.0
## - NYJ 1 2.41 17366 -12550.0
## - CAR 1 3.45 17367 -12548.4
## - avg_rbry_pos 1 3.65 17367 -12548.0
## - CLE 1 3.84 17367 -12547.7
## - JAC 1 5.25 17369 -12545.5
## - avg_rectd_plyr 1 7.45 17371 -12542.0
## - GB 1 9.36 17373 -12539.0
## - weight 1 9.71 17373 -12538.5
## - forty1 1 10.39 17374 -12537.4
## - NE 1 14.75 17378 -12530.5
## - height 1 19.60 17383 -12522.8
## - avg_rbry_plyr 1 30.25 17394 -12506.0
## - avg_fuml_plyr 1 239.46 17603 -12177.4
## - avg_qbtdp_plyr 1 2403.64 19767 -8990.5
##
## Step: AIC=-12553.22
## ints ~ height + weight + cold_weather + home_team_1 + forty1 +
## vertical1 + ARI + ATL + BAL + BUF + CAR + CLE + DAL + DET +
## GB + HOU + IND + JAC + MINN + NE + NOR + NYJ + OAK + PHI +
## PIT + SD + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - IND 1 0.39 17364 -12554.6
## - DET 1 0.45 17364 -12554.5
## - NOR 1 0.71 17364 -12554.1
## - DAL 1 0.84 17365 -12553.9
## - BAL 1 0.97 17365 -12553.7
## - cold_weather 1 0.98 17365 -12553.7
## - home_team_1 1 0.99 17365 -12553.7
## - PIT 1 1.11 17365 -12553.5
## - ATL 1 1.17 17365 -12553.4
## - BUF 1 1.19 17365 -12553.3
## <none> 17364 -12553.2
## - vertical1 1 1.53 17365 -12552.8
## - HOU 1 1.65 17365 -12552.6
## - SD 1 1.73 17366 -12552.5
## - WAS 1 1.83 17366 -12552.3
## - bad_weather_1 1 1.87 17366 -12552.3
## - ARI 1 1.88 17366 -12552.2
## - MINN 1 2.18 17366 -12551.8
## - OAK 1 2.23 17366 -12551.7
## - PHI 1 2.25 17366 -12551.7
## - NYJ 1 2.26 17366 -12551.6
## - CAR 1 3.28 17367 -12550.0
## - avg_rbry_pos 1 3.66 17367 -12549.4
## - CLE 1 3.66 17367 -12549.4
## - JAC 1 5.05 17369 -12547.2
## - avg_rectd_plyr 1 7.46 17371 -12543.4
## - GB 1 9.81 17374 -12539.7
## - weight 1 9.88 17374 -12539.6
## - forty1 1 10.48 17374 -12538.6
## - NE 1 15.35 17379 -12530.9
## - height 1 19.76 17384 -12524.0
## - avg_rbry_plyr 1 30.14 17394 -12507.6
## - avg_fuml_plyr 1 239.26 17603 -12179.1
## - avg_qbtdp_plyr 1 2403.48 19767 -8992.2
##
## Step: AIC=-12554.6
## ints ~ height + weight + cold_weather + home_team_1 + forty1 +
## vertical1 + ARI + ATL + BAL + BUF + CAR + CLE + DAL + DET +
## GB + HOU + JAC + MINN + NE + NOR + NYJ + OAK + PHI + PIT +
## SD + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - DET 1 0.54 17365 -12555.8
## - NOR 1 0.83 17365 -12555.3
## - BAL 1 0.88 17365 -12555.2
## - cold_weather 1 0.95 17365 -12555.1
## - DAL 1 0.97 17365 -12555.1
## - BUF 1 1.09 17365 -12554.9
## - home_team_1 1 1.16 17365 -12554.8
## - PIT 1 1.23 17365 -12554.7
## <none> 17364 -12554.6
## - ATL 1 1.32 17365 -12554.5
## - vertical1 1 1.49 17366 -12554.3
## - HOU 1 1.51 17366 -12554.2
## - WAS 1 1.70 17366 -12553.9
## - ARI 1 1.73 17366 -12553.9
## - bad_weather_1 1 1.86 17366 -12553.7
## - SD 1 1.87 17366 -12553.6
## - MINN 1 2.04 17366 -12553.4
## - OAK 1 2.09 17366 -12553.3
## - PHI 1 2.12 17366 -12553.3
## - NYJ 1 2.12 17366 -12553.2
## - CAR 1 3.12 17367 -12551.7
## - CLE 1 3.50 17368 -12551.1
## - avg_rbry_pos 1 3.61 17368 -12550.9
## - JAC 1 4.85 17369 -12548.9
## - avg_rectd_plyr 1 7.39 17372 -12544.9
## - weight 1 9.74 17374 -12541.2
## - GB 1 10.23 17374 -12540.4
## - forty1 1 10.43 17375 -12540.1
## - NE 1 15.86 17380 -12531.5
## - height 1 19.54 17384 -12525.7
## - avg_rbry_plyr 1 30.13 17394 -12509.0
## - avg_fuml_plyr 1 239.12 17603 -12180.7
## - avg_qbtdp_plyr 1 2411.73 19776 -8982.2
##
## Step: AIC=-12555.75
## ints ~ height + weight + cold_weather + home_team_1 + forty1 +
## vertical1 + ARI + ATL + BAL + BUF + CAR + CLE + DAL + GB +
## HOU + JAC + MINN + NE + NOR + NYJ + OAK + PHI + PIT + SD +
## WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr +
## avg_qbtdp_plyr + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - NOR 1 0.71 17365 -12556.6
## - DAL 1 0.85 17366 -12556.4
## - BAL 1 0.99 17366 -12556.2
## - home_team_1 1 1.03 17366 -12556.1
## - cold_weather 1 1.05 17366 -12556.1
## - PIT 1 1.13 17366 -12556.0
## - ATL 1 1.18 17366 -12555.9
## - BUF 1 1.21 17366 -12555.8
## <none> 17365 -12555.8
## - vertical1 1 1.57 17366 -12555.3
## - HOU 1 1.69 17366 -12555.1
## - SD 1 1.73 17366 -12555.0
## - WAS 1 1.85 17367 -12554.8
## - bad_weather_1 1 1.85 17367 -12554.8
## - ARI 1 1.92 17367 -12554.7
## - MINN 1 2.21 17367 -12554.3
## - OAK 1 2.27 17367 -12554.2
## - PHI 1 2.28 17367 -12554.1
## - NYJ 1 2.30 17367 -12554.1
## - CAR 1 3.33 17368 -12552.5
## - avg_rbry_pos 1 3.50 17368 -12552.2
## - CLE 1 3.70 17368 -12551.9
## - JAC 1 5.13 17370 -12549.6
## - avg_rectd_plyr 1 7.62 17372 -12545.7
## - weight 1 9.77 17374 -12542.3
## - GB 1 9.94 17375 -12542.0
## - forty1 1 10.33 17375 -12541.4
## - NE 1 15.52 17380 -12533.2
## - height 1 19.59 17384 -12526.8
## - avg_rbry_plyr 1 29.89 17395 -12510.5
## - avg_fuml_plyr 1 238.84 17604 -12182.3
## - avg_qbtdp_plyr 1 2411.25 19776 -8984.1
##
## Step: AIC=-12556.62
## ints ~ height + weight + cold_weather + home_team_1 + forty1 +
## vertical1 + ARI + ATL + BAL + BUF + CAR + CLE + DAL + GB +
## HOU + JAC + MINN + NE + NYJ + OAK + PHI + PIT + SD + WAS +
## avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr +
## avg_qbtdp_plyr + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - DAL 1 0.72 17366 -12557.5
## - home_team_1 1 0.92 17366 -12557.2
## - PIT 1 1.01 17366 -12557.0
## - ATL 1 1.02 17366 -12557.0
## - BAL 1 1.12 17367 -12556.8
## - cold_weather 1 1.13 17367 -12556.8
## <none> 17365 -12556.6
## - BUF 1 1.35 17367 -12556.5
## - vertical1 1 1.57 17367 -12556.1
## - SD 1 1.58 17367 -12556.1
## - bad_weather_1 1 1.83 17367 -12555.7
## - HOU 1 1.89 17367 -12555.6
## - WAS 1 2.02 17367 -12555.4
## - ARI 1 2.13 17368 -12555.2
## - MINN 1 2.38 17368 -12554.8
## - PHI 1 2.46 17368 -12554.7
## - OAK 1 2.48 17368 -12554.7
## - NYJ 1 2.48 17368 -12554.7
## - avg_rbry_pos 1 3.33 17369 -12553.4
## - CAR 1 3.57 17369 -12553.0
## - CLE 1 3.91 17369 -12552.4
## - JAC 1 5.44 17371 -12550.0
## - avg_rectd_plyr 1 8.14 17374 -12545.7
## - GB 1 9.56 17375 -12543.5
## - weight 1 9.82 17375 -12543.1
## - forty1 1 10.42 17376 -12542.1
## - NE 1 15.07 17380 -12534.8
## - height 1 19.69 17385 -12527.5
## - avg_rbry_plyr 1 29.73 17395 -12511.6
## - avg_fuml_plyr 1 240.61 17606 -12180.4
## - avg_qbtdp_plyr 1 2420.52 19786 -8972.2
##
## Step: AIC=-12557.49
## ints ~ height + weight + cold_weather + home_team_1 + forty1 +
## vertical1 + ARI + ATL + BAL + BUF + CAR + CLE + GB + HOU +
## JAC + MINN + NE + NYJ + OAK + PHI + PIT + SD + WAS + avg_rectd_plyr +
## avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr +
## bad_weather_1
##
## Df Sum of Sq RSS AIC
## - home_team_1 1 0.74 17367 -12558.3
## - ATL 1 0.89 17367 -12558.1
## - PIT 1 0.91 17367 -12558.0
## - cold_weather 1 1.19 17367 -12557.6
## - BAL 1 1.24 17367 -12557.5
## <none> 17366 -12557.5
## - SD 1 1.45 17368 -12557.2
## - BUF 1 1.47 17368 -12557.2
## - vertical1 1 1.55 17368 -12557.0
## - bad_weather_1 1 1.82 17368 -12556.6
## - HOU 1 2.10 17368 -12556.2
## - WAS 1 2.17 17368 -12556.1
## - ARI 1 2.35 17368 -12555.8
## - MINN 1 2.56 17369 -12555.4
## - PHI 1 2.63 17369 -12555.3
## - NYJ 1 2.65 17369 -12555.3
## - OAK 1 2.67 17369 -12555.3
## - avg_rbry_pos 1 3.32 17369 -12554.2
## - CAR 1 3.78 17370 -12553.5
## - CLE 1 4.10 17370 -12553.0
## - JAC 1 5.70 17372 -12550.5
## - avg_rectd_plyr 1 8.34 17374 -12546.3
## - GB 1 9.26 17375 -12544.8
## - weight 1 9.76 17376 -12544.0
## - forty1 1 10.40 17377 -12543.0
## - NE 1 14.71 17381 -12536.2
## - height 1 19.64 17386 -12528.4
## - avg_rbry_plyr 1 29.91 17396 -12512.2
## - avg_fuml_plyr 1 240.97 17607 -12180.7
## - avg_qbtdp_plyr 1 2419.81 19786 -8974.2
##
## Step: AIC=-12558.32
## ints ~ height + weight + cold_weather + forty1 + vertical1 +
## ARI + ATL + BAL + BUF + CAR + CLE + GB + HOU + JAC + MINN +
## NE + NYJ + OAK + PHI + PIT + SD + WAS + avg_rectd_plyr +
## avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr +
## bad_weather_1
##
## Df Sum of Sq RSS AIC
## - ATL 1 0.72 17368 -12559.2
## - PIT 1 0.98 17368 -12558.8
## - cold_weather 1 1.03 17368 -12558.7
## - BAL 1 1.17 17368 -12558.5
## <none> 17367 -12558.3
## - BUF 1 1.42 17368 -12558.1
## - vertical1 1 1.55 17368 -12557.9
## - SD 1 1.55 17368 -12557.9
## - bad_weather_1 1 1.75 17369 -12557.6
## - WAS 1 2.05 17369 -12557.1
## - HOU 1 2.43 17369 -12556.5
## - PHI 1 2.53 17369 -12556.3
## - MINN 1 2.54 17369 -12556.3
## - OAK 1 2.56 17369 -12556.3
## - NYJ 1 2.56 17369 -12556.3
## - ARI 1 2.70 17370 -12556.0
## - avg_rbry_pos 1 3.34 17370 -12555.0
## - CAR 1 3.63 17371 -12554.6
## - CLE 1 3.96 17371 -12554.0
## - JAC 1 5.52 17372 -12551.6
## - avg_rectd_plyr 1 8.27 17375 -12547.2
## - GB 1 9.47 17376 -12545.3
## - weight 1 9.76 17377 -12544.9
## - forty1 1 10.43 17377 -12543.8
## - NE 1 15.05 17382 -12536.5
## - height 1 19.60 17386 -12529.3
## - avg_rbry_plyr 1 29.92 17397 -12513.0
## - avg_fuml_plyr 1 240.75 17608 -12181.9
## - avg_qbtdp_plyr 1 2421.14 19788 -8973.3
##
## Step: AIC=-12559.17
## ints ~ height + weight + cold_weather + forty1 + vertical1 +
## ARI + BAL + BUF + CAR + CLE + GB + HOU + JAC + MINN + NE +
## NYJ + OAK + PHI + PIT + SD + WAS + avg_rectd_plyr + avg_rbry_plyr +
## avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - PIT 1 0.89 17368 -12559.8
## - cold_weather 1 1.17 17369 -12559.3
## <none> 17368 -12559.2
## - BAL 1 1.28 17369 -12559.1
## - SD 1 1.42 17369 -12558.9
## - vertical1 1 1.45 17369 -12558.9
## - BUF 1 1.54 17369 -12558.7
## - bad_weather_1 1 1.77 17369 -12558.4
## - WAS 1 2.20 17370 -12557.7
## - HOU 1 2.62 17370 -12557.0
## - MINN 1 2.68 17370 -12556.9
## - PHI 1 2.70 17370 -12556.9
## - NYJ 1 2.71 17370 -12556.9
## - OAK 1 2.74 17370 -12556.8
## - ARI 1 2.88 17370 -12556.6
## - avg_rbry_pos 1 3.30 17371 -12556.0
## - CAR 1 3.84 17371 -12555.1
## - CLE 1 4.14 17372 -12554.6
## - JAC 1 5.79 17373 -12552.0
## - avg_rectd_plyr 1 8.55 17376 -12547.6
## - GB 1 9.17 17377 -12546.7
## - weight 1 9.79 17377 -12545.7
## - forty1 1 10.39 17378 -12544.7
## - NE 1 14.65 17382 -12538.0
## - height 1 19.88 17387 -12529.7
## - avg_rbry_plyr 1 29.95 17398 -12513.8
## - avg_fuml_plyr 1 242.63 17610 -12179.9
## - avg_qbtdp_plyr 1 2421.52 19789 -8973.8
##
## Step: AIC=-12559.76
## ints ~ height + weight + cold_weather + forty1 + vertical1 +
## ARI + BAL + BUF + CAR + CLE + GB + HOU + JAC + MINN + NE +
## NYJ + OAK + PHI + SD + WAS + avg_rectd_plyr + avg_rbry_plyr +
## avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - cold_weather 1 0.99 17369 -12560.2
## <none> 17368 -12559.8
## - SD 1 1.31 17370 -12559.7
## - BAL 1 1.43 17370 -12559.5
## - vertical1 1 1.44 17370 -12559.5
## - BUF 1 1.70 17370 -12559.1
## - bad_weather_1 1 1.73 17370 -12559.0
## - WAS 1 2.39 17371 -12558.0
## - HOU 1 2.79 17371 -12557.3
## - MINN 1 2.88 17371 -12557.2
## - PHI 1 2.90 17371 -12557.2
## - NYJ 1 2.93 17371 -12557.1
## - OAK 1 2.93 17371 -12557.1
## - ARI 1 3.08 17372 -12556.9
## - avg_rbry_pos 1 3.29 17372 -12556.6
## - CAR 1 4.08 17373 -12555.3
## - CLE 1 4.42 17373 -12554.8
## - JAC 1 6.04 17375 -12552.2
## - avg_rectd_plyr 1 8.64 17377 -12548.1
## - GB 1 8.81 17377 -12547.8
## - weight 1 9.79 17378 -12546.3
## - forty1 1 10.41 17379 -12545.3
## - NE 1 14.23 17383 -12539.3
## - height 1 19.87 17388 -12530.3
## - avg_rbry_plyr 1 29.96 17398 -12514.4
## - avg_fuml_plyr 1 242.17 17611 -12181.2
## - avg_qbtdp_plyr 1 2422.08 19791 -8973.8
##
## Step: AIC=-12560.2
## ints ~ height + weight + forty1 + vertical1 + ARI + BAL + BUF +
## CAR + CLE + GB + HOU + JAC + MINN + NE + NYJ + OAK + PHI +
## SD + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
##
## Df Sum of Sq RSS AIC
## <none> 17369 -12560.2
## - SD 1 1.37 17371 -12560.0
## - vertical1 1 1.42 17371 -12559.9
## - BAL 1 1.57 17371 -12559.7
## - BUF 1 1.79 17371 -12559.4
## - bad_weather_1 1 2.16 17372 -12558.8
## - WAS 1 2.43 17372 -12558.4
## - HOU 1 2.62 17372 -12558.1
## - OAK 1 2.81 17372 -12557.7
## - MINN 1 2.92 17372 -12557.6
## - PHI 1 2.99 17372 -12557.5
## - ARI 1 2.99 17372 -12557.5
## - NYJ 1 3.03 17373 -12557.4
## - avg_rbry_pos 1 3.26 17373 -12557.0
## - CAR 1 4.05 17374 -12555.8
## - CLE 1 4.71 17374 -12554.7
## - JAC 1 5.84 17375 -12553.0
## - GB 1 8.39 17378 -12548.9
## - avg_rectd_plyr 1 8.75 17378 -12548.4
## - weight 1 9.74 17379 -12546.8
## - forty1 1 10.42 17380 -12545.7
## - NE 1 13.78 17383 -12540.4
## - height 1 19.82 17389 -12530.8
## - avg_rbry_plyr 1 29.92 17399 -12514.9
## - avg_fuml_plyr 1 242.03 17612 -12181.9
## - avg_qbtdp_plyr 1 2422.00 19791 -8974.5
summary(aic_ints)
##
## Call:
## lm(formula = ints ~ height + weight + forty1 + vertical1 + ARI +
## BAL + BUF + CAR + CLE + GB + HOU + JAC + MINN + NE + NYJ +
## OAK + PHI + SD + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1, data = trainTransformedints)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.8663 -0.0768 -0.0169 0.0407 10.8788
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.988e-15 4.798e-03 0.000 1.000000
## height 5.181e-02 9.255e-03 5.598 2.19e-08 ***
## weight -3.410e-02 8.691e-03 -3.924 8.72e-05 ***
## forty1 3.353e-02 8.261e-03 4.058 4.95e-05 ***
## vertical1 -9.486e-03 6.327e-03 -1.499 0.133831
## ARI 1.059e-02 4.872e-03 2.173 0.029800 *
## BAL 7.678e-03 4.870e-03 1.577 0.114904
## BUF 8.189e-03 4.873e-03 1.680 0.092882 .
## CAR 1.233e-02 4.871e-03 2.532 0.011355 *
## CLE 1.333e-02 4.886e-03 2.728 0.006382 **
## GB -1.784e-02 4.899e-03 -3.642 0.000271 ***
## HOU 9.925e-03 4.878e-03 2.035 0.041902 *
## JAC 1.480e-02 4.871e-03 3.039 0.002378 **
## MINN 1.049e-02 4.884e-03 2.147 0.031799 *
## NE -2.315e-02 4.961e-03 -4.667 3.07e-06 ***
## NYJ 1.067e-02 4.877e-03 2.187 0.028721 *
## OAK 1.032e-02 4.895e-03 2.108 0.035016 *
## PHI 1.057e-02 4.865e-03 2.172 0.029838 *
## SD -7.164e-03 4.868e-03 -1.472 0.141131
## WAS 9.576e-03 4.886e-03 1.960 0.050008 .
## avg_rectd_plyr -2.248e-02 6.046e-03 -3.719 0.000201 ***
## avg_rbry_plyr -5.029e-02 7.312e-03 -6.878 6.21e-12 ***
## avg_rbry_pos 1.929e-02 8.504e-03 2.269 0.023286 *
## avg_fuml_plyr 1.379e-01 7.050e-03 19.560 < 2e-16 ***
## avg_qbtdp_plyr 4.717e-01 7.624e-03 61.877 < 2e-16 ***
## bad_weather_1 8.888e-03 4.814e-03 1.846 0.064879 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.7954 on 27458 degrees of freedom
## Multiple R-squared: 0.368, Adjusted R-squared: 0.3674
## F-statistic: 639.5 on 25 and 27458 DF, p-value: < 2.2e-16
RandomForest:
forest_ints <- randomForest(intsregform, data = trainTransformedints,
importance = TRUE, ntree = 500)
plot(forest_ints)
varImpPlot(forest_ints)
###Pass Attempts PreProcess:
set.seed(123)
splitpa <- sample.split(nfl_data$pa, SplitRatio = 0.7)
Trainpa <- subset(nfl_data, split == TRUE)
Testpa <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(Trainpa, method = c("center", "scale"))
trainTransformedpa <- predict(preProcValues, Trainpa)
testTransformedpa <- predict(preProcValues, Testpa)
ggpairs:
ggpairs(nfl_data[,c("pa",colnames(filtered_nfl_data_fields[1:9]))])
ggpairs(nfl_data[,c("pa",colnames(filtered_nfl_data_fields[10:18]))])
ggpairs(nfl_data[,c("pa",colnames(filtered_nfl_data_fields[19:27]))])
ggpairs(nfl_data[,c("pa",colnames(filtered_nfl_data_fields[28:36]))])
ggpairs(nfl_data[,c("pa",colnames(filtered_nfl_data_fields[37:45]))])
ggpairs(nfl_data[,c("pa",colnames(filtered_nfl_data_fields[46:51]))])
paregform <- formula(paste("pa ~ ",
paste(colnames(filtered_nfl_data_fields), collapse="+")))
linRegQBpa <- lm(paregform, data = trainTransformedpa)
summary(linRegQBpa)
linRegQBpa2 <- update(linRegQBpa, ~.-hot_weather-home_team_1-ATL-BAL-CLE-DAL-DEN-DET-KC
-NOR-OAK-SEA-STL-WAS-avg_trg_team-avg_tdr_team-avg_rbra_team
-avg_rbry_plyr-avg_fuml_team-avg_qbints_team-avg_qbtdp_team
-grass_1-bad_weather_1 )
summary(linRegQBpa2)
linRegQBpa3 <- update(linRegQBpa2, ~.-vertical1-IND-PHI-PIT )
summary(linRegQBpa3)
##
## Call:
## lm(formula = pa ~ height + weight + cold_weather + forty1 + ARI +
## BUF + CAR + CHI + CIN + GB + HOU + JAC + MIA + MINN + NE +
## NYG + NYJ + SD + TB + TEN + avg_rectd_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr, data = trainTransformedpa)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.1362 -0.0694 -0.0130 0.0356 4.5346
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.837e-15 2.313e-03 0.000 1.000000
## height 5.816e-02 4.447e-03 13.079 < 2e-16 ***
## weight -3.996e-02 4.171e-03 -9.580 < 2e-16 ***
## cold_weather 1.311e-04 2.351e-03 0.056 0.955524
## forty1 3.773e-02 3.342e-03 11.290 < 2e-16 ***
## ARI 4.865e-03 2.351e-03 2.069 0.038516 *
## BUF 3.949e-03 2.351e-03 1.680 0.093004 .
## CAR 1.089e-04 2.349e-03 0.046 0.963033
## CHI -5.742e-03 2.352e-03 -2.441 0.014637 *
## CIN -3.356e-03 2.351e-03 -1.427 0.153498
## GB -1.861e-02 2.370e-03 -7.849 4.34e-15 ***
## HOU 9.521e-03 2.359e-03 4.037 5.44e-05 ***
## JAC 5.286e-03 2.348e-03 2.251 0.024380 *
## MIA 1.332e-03 2.346e-03 0.568 0.570156
## MINN 5.619e-03 2.355e-03 2.386 0.017022 *
## NE -1.624e-02 2.400e-03 -6.768 1.33e-11 ***
## NYG -8.348e-03 2.353e-03 -3.548 0.000389 ***
## NYJ -1.280e-03 2.350e-03 -0.544 0.586103
## SD -1.374e-02 2.353e-03 -5.841 5.25e-09 ***
## TB -3.308e-03 2.350e-03 -1.408 0.159203
## TEN -2.767e-03 2.350e-03 -1.177 0.239039
## avg_rectd_plyr -2.617e-02 2.904e-03 -9.010 < 2e-16 ***
## avg_rbry_pos -4.051e-03 3.427e-03 -1.182 0.237211
## avg_fuml_plyr 9.350e-02 3.199e-03 29.232 < 2e-16 ***
## avg_qbtdp_plyr 8.231e-01 3.643e-03 225.966 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3834 on 27459 degrees of freedom
## Multiple R-squared: 0.8531, Adjusted R-squared: 0.853
## F-statistic: 6645 on 24 and 27459 DF, p-value: < 2.2e-16
R2 is strong. This stat is the catalyst Ints, completions, TD’s. You have to attempt a pass in order to achieve a stat in any of these three categories.
Testing the data, we see that the training set and the test set are similar. The model seems to hold up through testing
PaPredicted <- predict(linRegQBpa3, newdata = testTransformedpa)
SSEpa <- sum((PaPredicted - testTransformedpa$pa)^2)
SSTpa <- sum((mean(c(testTransformedpa$pa,trainTransformedpa$pa))-testTransformedpa$pa)^2)
r2_pa <- 1 - SSEpa/SSTpa
r2_pa
## [1] 0.8463253
rmse_pa <- sqrt(SSEpa/nrow(testTransformedpa))
rmse_pa
## [1] 0.3953472
Regression plots:
par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegQBpa3, which = c(1:3,5))
Very similar patterns to completions and yards. Some strong tails, so the data may not be normally distributed
Summary statistics:
confint(linRegQBpa3)
## 2.5 % 97.5 %
## (Intercept) -0.0045332724 0.004533272
## height 0.0494453252 0.066877140
## weight -0.0481324757 -0.031781419
## cold_weather -0.0044762676 0.004738466
## forty1 0.0311803541 0.044281015
## ARI 0.0002571222 0.009472993
## BUF -0.0006588596 0.008557851
## CAR -0.0044955296 0.004713284
## CHI -0.0103515944 -0.001132075
## CIN -0.0079650992 0.001252658
## GB -0.0232514031 -0.013959285
## HOU 0.0048978676 0.014143962
## JAC 0.0006836263 0.009887708
## MIA -0.0032657529 0.005929682
## MINN 0.0010038754 0.010234782
## NE -0.0209465699 -0.011538645
## NYG -0.0129596970 -0.003735903
## NYJ -0.0058856085 0.003326504
## SD -0.0183540586 -0.009130940
## TB -0.0079143787 0.001297788
## TEN -0.0073740699 0.001839441
## avg_rectd_plyr -0.0318627125 -0.020476836
## avg_rbry_pos -0.0107684004 0.002666476
## avg_fuml_plyr 0.0872311724 0.099770017
## avg_qbtdp_plyr 0.8159438330 0.830222848
coef(summary(linRegQBpa3))
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.837106e-15 0.002312835 1.226679e-12 1.000000e+00
## height 5.816123e-02 0.004446777 1.307941e+01 5.647188e-39
## weight -3.995695e-02 0.004171081 -9.579519e+00 1.054241e-21
## cold_weather 1.310994e-04 0.002350637 5.577188e-02 9.555239e-01
## forty1 3.773068e-02 0.003341919 1.129012e+01 1.705538e-29
## ARI 4.865058e-03 0.002350927 2.069421e+00 3.851593e-02
## BUF 3.949496e-03 0.002351141 1.679821e+00 9.300359e-02
## CAR 1.088773e-04 0.002349127 4.634798e-02 9.630332e-01
## CHI -5.741835e-03 0.002351858 -2.441404e+00 1.463656e-02
## CIN -3.356220e-03 0.002351408 -1.427324e+00 1.534980e-01
## GB -1.860534e-02 0.002370377 -7.849106e+00 4.342062e-15
## HOU 9.520915e-03 0.002358637 4.036617e+00 5.437438e-05
## JAC 5.285667e-03 0.002347920 2.251213e+00 2.437993e-02
## MIA 1.331964e-03 0.002345714 5.678290e-01 5.701557e-01
## MINN 5.619329e-03 0.002354763 2.386367e+00 1.702247e-02
## NE -1.624261e-02 0.002399919 -6.767981e+00 1.332176e-11
## NYG -8.347800e-03 0.002352948 -3.547804e+00 3.891041e-04
## NYJ -1.279552e-03 0.002349968 -5.444977e-01 5.861035e-01
## SD -1.374250e-02 0.002352776 -5.840972e+00 5.248161e-09
## TB -3.308296e-03 0.002349982 -1.407796e+00 1.592028e-01
## TEN -2.767315e-03 0.002350325 -1.177418e+00 2.390390e-01
## avg_rectd_plyr -2.616977e-02 0.002904486 -9.010123e+00 2.188484e-19
## avg_rbry_pos -4.050962e-03 0.003427176 -1.182012e+00 2.372113e-01
## avg_fuml_plyr 9.350059e-02 0.003198603 2.923170e+01 5.249398e-185
## avg_qbtdp_plyr 8.230833e-01 0.003642512 2.259658e+02 0.000000e+00
anova(linRegQBpa3)
## Analysis of Variance Table
##
## Response: pa
## Df Sum Sq Mean Sq F value Pr(>F)
## height 1 1950.3 1950.3 13265.6253 < 2.2e-16 ***
## weight 1 461.7 461.7 3140.2425 < 2.2e-16 ***
## cold_weather 1 0.0 0.0 0.0000 0.995281
## forty1 1 5580.4 5580.4 37957.4316 < 2.2e-16 ***
## ARI 1 1.3 1.3 8.6924 0.003198 **
## BUF 1 1.2 1.2 8.3499 0.003860 **
## CAR 1 9.9 9.9 67.1807 2.584e-16 ***
## CHI 1 0.3 0.3 2.2304 0.135331
## CIN 1 3.0 3.0 20.5662 5.785e-06 ***
## GB 1 0.2 0.2 1.2281 0.267782
## HOU 1 12.2 12.2 83.0773 < 2.2e-16 ***
## JAC 1 0.8 0.8 5.1288 0.023540 *
## MIA 1 0.4 0.4 2.5248 0.112079
## MINN 1 0.8 0.8 5.7576 0.016424 *
## NE 1 43.7 43.7 297.5004 < 2.2e-16 ***
## NYG 1 8.5 8.5 57.8649 2.897e-14 ***
## NYJ 1 0.2 0.2 1.6841 0.194393
## SD 1 19.9 19.9 135.1058 < 2.2e-16 ***
## TB 1 2.5 2.5 17.3398 3.135e-05 ***
## TEN 1 5.8 5.8 39.2418 3.800e-10 ***
## avg_rectd_plyr 1 1877.2 1877.2 12768.2759 < 2.2e-16 ***
## avg_rbry_pos 1 341.1 341.1 2320.1948 < 2.2e-16 ***
## avg_fuml_plyr 1 5617.8 5617.8 38212.0971 < 2.2e-16 ***
## avg_qbtdp_plyr 1 7506.8 7506.8 51060.5597 < 2.2e-16 ***
## Residuals 27459 4037.0 0.1
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
AIC:
aic_pa <- step(lm(paregform, data = trainTransformedpa), direction = "backward")
summary(aic_pa)
##
## Call:
## lm(formula = pa ~ height + weight + home_team_1 + forty1 + vertical1 +
## ATL + CHI + CIN + CLE + DAL + DEN + DET + GB + HOU + IND +
## JAC + KC + MINN + NE + NOR + NYG + PHI + PIT + SD + STL +
## TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr, data = trainTransformedpa)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.1041 -0.0666 -0.0159 0.0396 4.5214
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.726e-15 2.303e-03 0.000 1.000000
## height 5.899e-02 4.440e-03 13.286 < 2e-16 ***
## weight -3.672e-02 4.176e-03 -8.793 < 2e-16 ***
## home_team_1 -3.761e-03 2.440e-03 -1.541 0.123293
## forty1 2.135e-02 3.960e-03 5.390 7.10e-08 ***
## vertical1 -1.701e-02 3.041e-03 -5.593 2.25e-08 ***
## ATL -7.079e-03 2.431e-03 -2.912 0.003590 **
## CHI -7.400e-03 2.388e-03 -3.098 0.001947 **
## CIN -4.621e-03 2.392e-03 -1.932 0.053383 .
## CLE 9.151e-03 2.396e-03 3.819 0.000134 ***
## DAL -1.413e-02 2.418e-03 -5.845 5.13e-09 ***
## DEN -5.993e-03 2.402e-03 -2.495 0.012589 *
## DET -3.663e-03 2.406e-03 -1.522 0.128004
## GB -2.066e-02 2.419e-03 -8.543 < 2e-16 ***
## HOU 8.256e-03 2.423e-03 3.407 0.000657 ***
## IND -3.927e-03 2.410e-03 -1.630 0.103126
## JAC 4.649e-03 2.391e-03 1.945 0.051820 .
## KC 4.559e-03 2.392e-03 1.906 0.056649 .
## MINN 5.376e-03 2.393e-03 2.246 0.024708 *
## NE -1.771e-02 2.456e-03 -7.208 5.81e-13 ***
## NOR -1.407e-02 2.425e-03 -5.802 6.62e-09 ***
## NYG -1.049e-02 2.397e-03 -4.377 1.21e-05 ***
## PHI 4.725e-03 2.389e-03 1.978 0.047963 *
## PIT -6.454e-03 2.394e-03 -2.696 0.007025 **
## SD -1.592e-02 2.395e-03 -6.648 3.04e-11 ***
## STL 4.356e-03 2.412e-03 1.806 0.070888 .
## TB -5.189e-03 2.388e-03 -2.173 0.029785 *
## TEN -4.047e-03 2.392e-03 -1.692 0.090651 .
## WAS 3.849e-03 2.401e-03 1.603 0.108852
## avg_rectd_plyr -2.015e-02 2.938e-03 -6.859 7.06e-12 ***
## avg_rbry_plyr -3.369e-02 3.511e-03 -9.595 < 2e-16 ***
## avg_rbry_pos 1.923e-02 4.086e-03 4.705 2.55e-06 ***
## avg_fuml_plyr 1.016e-01 3.393e-03 29.929 < 2e-16 ***
## avg_qbtdp_plyr 8.222e-01 3.686e-03 223.081 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3818 on 27450 degrees of freedom
## Multiple R-squared: 0.8544, Adjusted R-squared: 0.8542
## F-statistic: 4880 on 33 and 27450 DF, p-value: < 2.2e-16
RandomForest:
forest_pa <- randomForest(paregform, data = trainTransformedpa,
importance = TRUE, ntree = 500)
plot(forest_pa)
varImpPlot(forest_pa)
##Rushing Stats
PreProcess:
set.seed(123)
splitry <- sample.split(nfl_data$ry, SplitRatio = 0.7)
Trainry <- subset(nfl_data, split == TRUE)
Testry <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(Trainry, method = c("center", "scale"))
trainTransformedry <- predict(preProcValues, Trainry)
testTransformedry <- predict(preProcValues, Testry)
ggpairs:
ggpairs(nfl_data[,c("ry",colnames(filtered_nfl_data_fields[1:9]))])
ggpairs(nfl_data[,c("ry",colnames(filtered_nfl_data_fields[10:18]))])
ggpairs(nfl_data[,c("ry",colnames(filtered_nfl_data_fields[19:27]))])
ggpairs(nfl_data[,c("ry",colnames(filtered_nfl_data_fields[28:36]))])
ggpairs(nfl_data[,c("ry",colnames(filtered_nfl_data_fields[37:45]))])
ggpairs(nfl_data[,c("ry",colnames(filtered_nfl_data_fields[46:51]))])
ryregform <- formula(paste("ry ~ ",
paste(colnames(filtered_nfl_data_fields), collapse="+")))
linRegRushYd <- lm(ryregform, data = trainTransformedry)
summary(linRegRushYd)
linRegRushYd2 <- update(linRegRushYd,~.-height-weight-hot_weather-home_team_1-is_WR-is_TE-forty1
-vertical1-ARI-ATL-BAL - BUF - CAR - CHI
-CIN - CLE - DAL - DEN - DET - GB - HOU - IND - JAC - KC - MIA
-MINN - NE - NOR - NYG-NYJ - OAK - PHI - PIT -SD - SEA - STL
-TB - TEN - WAS
-avg_rectd_plyr-avg_trg_team-avg_tdr_team-avg_rbra_team-avg_rbry_pos
-avg_fuml_team-avg_fuml_plyr-avg_qbints_team-avg_qbtdp_team
-avg_qbints_plyr-bad_weather_1-grass_1)
summary(linRegRushYd2)
##
## Call:
## lm(formula = ry ~ cold_weather + avg_rbry_plyr + avg_qbtdp_plyr,
## data = trainTransformedry)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.4564 -0.0775 -0.0072 0.0077 7.1706
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.343e-14 3.913e-03 0.000 1.000000
## cold_weather 1.409e-02 3.913e-03 3.602 0.000316 ***
## avg_rbry_plyr 7.609e-01 3.913e-03 194.477 < 2e-16 ***
## avg_qbtdp_plyr -1.208e-03 3.913e-03 -0.309 0.757571
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6486 on 27480 degrees of freedom
## Multiple R-squared: 0.5793, Adjusted R-squared: 0.5793
## F-statistic: 1.261e+04 on 3 and 27480 DF, p-value: < 2.2e-16
Testing the data, we see that the training set and the test set are similar. The model seems to hold up through testing
RushydsPredicted <- predict(linRegRushYd2, newdata = testTransformedry)
SSEruyd <- sum((RushydsPredicted - testTransformedry$ry)^2)
SSTruyd <- sum((mean(c(testTransformedry$ry,trainTransformedry$ry))-testTransformedry$ry)^2)
r2_ruyd <- 1 - SSEruyd/SSTruyd
r2_ruyd
## [1] 0.5850066
rmse_ruyd <- sqrt(SSEruyd/nrow(testTransformedry))
rmse_ruyd
## [1] 0.6467476
Regression plots:
par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegRushYd2, which = c(1:3,5))
Summary statistics:
confint(linRegRushYd2)
## 2.5 % 97.5 %
## (Intercept) -0.007668979 0.007668979
## cold_weather 0.006424438 0.021762752
## avg_rbry_plyr 0.753270275 0.768608611
## avg_qbtdp_plyr -0.008876890 0.006461374
coef(summary(linRegRushYd2))
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.343374e-14 0.003912644 5.989234e-12 1.0000000000
## cold_weather 1.409359e-02 0.003912735 3.601981e+00 0.0003163587
## avg_rbry_plyr 7.609394e-01 0.003912740 1.944774e+02 0.0000000000
## avg_qbtdp_plyr -1.207758e-03 0.003912722 -3.086747e-01 0.7575713455
anova(linRegRushYd2)
## Analysis of Variance Table
##
## Response: ry
## Df Sum Sq Mean Sq F value Pr(>F)
## cold_weather 1 7.5 7.5 17.7329 2.55e-05 ***
## avg_rbry_plyr 1 15913.4 15913.4 37821.7831 < 2.2e-16 ***
## avg_qbtdp_plyr 1 0.0 0.0 0.0953 0.7576
## Residuals 27480 11562.1 0.4
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
AIC:
aic_ry <- step(lm(ryregform, data = trainTransformedry), direction = "backward")
summary(aic_ry)
##
## Call:
## lm(formula = ry ~ cold_weather + home_team_1 + CAR + DEN + NOR +
## NYJ + PIT + WAS + avg_rbry_plyr + grass_1 + bad_weather_1,
## data = trainTransformedry)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.4603 -0.0810 -0.0102 0.0209 7.1671
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.349e-14 3.911e-03 0.000 1.00000
## cold_weather 1.260e-02 4.008e-03 3.144 0.00167 **
## home_team_1 8.292e-03 4.060e-03 2.043 0.04110 *
## CAR -6.237e-03 3.939e-03 -1.583 0.11338
## DEN 7.038e-03 3.954e-03 1.780 0.07509 .
## NOR -7.140e-03 3.945e-03 -1.810 0.07033 .
## NYJ -6.635e-03 3.944e-03 -1.682 0.09254 .
## PIT -6.249e-03 3.959e-03 -1.578 0.11455
## WAS 5.933e-03 3.940e-03 1.506 0.13209
## avg_rbry_plyr 7.612e-01 3.914e-03 194.484 < 2e-16 ***
## grass_1 -8.020e-03 4.103e-03 -1.954 0.05066 .
## bad_weather_1 6.278e-03 3.961e-03 1.585 0.11305
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6484 on 27472 degrees of freedom
## Multiple R-squared: 0.5797, Adjusted R-squared: 0.5795
## F-statistic: 3444 on 11 and 27472 DF, p-value: < 2.2e-16
RandomForest:
forest_ry <- randomForest(ryregform, data = trainTransformedry,
importance = TRUE, ntree = 500)
plot(forest_ry)
varImpPlot(forest_ry)
###Rushing attempts PreProcess:
set.seed(123)
splitra <- sample.split(nfl_data$ra, SplitRatio = 0.7)
Trainra <- subset(nfl_data, split == TRUE)
Testra <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(Trainra, method = c("center", "scale"))
trainTransformedra <- predict(preProcValues, Trainra)
testTransformedra <- predict(preProcValues, Testra)
ggpairs:
ggpairs(nfl_data[,c("ra",colnames(filtered_nfl_data_fields[1:9]))])
ggpairs(nfl_data[,c("ra",colnames(filtered_nfl_data_fields[10:18]))])
ggpairs(nfl_data[,c("ra",colnames(filtered_nfl_data_fields[19:27]))])
ggpairs(nfl_data[,c("ra",colnames(filtered_nfl_data_fields[28:36]))])
ggpairs(nfl_data[,c("ra",colnames(filtered_nfl_data_fields[37:45]))])
ggpairs(nfl_data[,c("ra",colnames(filtered_nfl_data_fields[46:51]))])
raregform <- formula(paste("ra ~ ",
paste(colnames(filtered_nfl_data_fields), collapse="+")))
linRegRushAtt <- lm(raregform, data = trainTransformedra)
summary(linRegRushAtt)
linRegRushAtt2 <- update(linRegRushYd,~.-height-weight-hot_weather-home_team_1-age-is_TE
-vertical1-ARI-ATL-BAL - BUF - CAR - CHI
-CIN - CLE - DAL - GB - IND - JAC - KC - MIA
-MINN - NE - NOR -NYJ - OAK - PHI - PIT -SD - SEA
-TB - TEN - WAS
-avg_rectd_plyr-avg_trg_team-avg_tdr_team-avg_rbra_team
-avg_fuml_team-avg_fuml_plyr-avg_qbints_team-avg_qbtdp_team-avg_qbints_plyr
-bad_weather_1-grass_1)
summary(linRegRushAtt2)
linRegRushAtt3 <- update(linRegRushYd,~.-is_WR-forty1-is_TE-DET-HOU-NYG-STL-avg_rbry_pos)
summary(linRegRushAtt3)
##
## Call:
## lm(formula = ry ~ height + weight + cold_weather + hot_weather +
## home_team_1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + GB + IND + JAC + KC + MIA + MINN +
## NE + NOR + NYJ + OAK + PHI + PIT + SD + SEA + TB + TEN +
## WAS + avg_trg_team + avg_rectd_plyr + avg_tdr_team + avg_rbra_team +
## avg_rbry_plyr + avg_fuml_plyr + avg_fuml_team + avg_qbints_team +
## avg_qbtdp_plyr + avg_qbtdp_team + grass_1 + bad_weather_1,
## data = trainTransformedry)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.4896 -0.0836 -0.0125 0.0242 7.1660
##
## Coefficients: (2 not defined because of singularities)
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.344e-14 3.913e-03 0.000 1.000000
## height -4.250e-03 6.636e-03 -0.641 0.521852
## weight 2.594e-03 5.973e-03 0.434 0.664046
## cold_weather 1.399e-02 4.119e-03 3.396 0.000685 ***
## hot_weather -1.398e-03 3.948e-03 -0.354 0.723326
## home_team_1 1.004e-02 4.257e-03 2.357 0.018410 *
## vertical1 -1.282e-03 4.435e-03 -0.289 0.772558
## ARI 1.483e-03 1.001e-02 0.148 0.882240
## ATL 1.719e-03 1.975e-02 0.087 0.930629
## BAL -4.354e-03 1.319e-02 -0.330 0.741352
## BUF -3.768e-03 9.869e-03 -0.382 0.702625
## CAR -5.674e-03 7.359e-03 -0.771 0.440718
## CHI -8.120e-03 9.801e-03 -0.828 0.407412
## CIN -4.125e-03 7.453e-03 -0.553 0.579998
## CLE -1.419e-03 5.366e-03 -0.265 0.791380
## DAL -1.644e-03 5.768e-03 -0.285 0.775585
## DEN 1.147e-04 2.093e-02 0.005 0.995629
## GB -6.551e-03 8.796e-03 -0.745 0.456438
## IND -9.439e-03 4.924e-03 -1.917 0.055243 .
## JAC -8.556e-03 8.212e-03 -1.042 0.297482
## KC -6.296e-04 5.422e-03 -0.116 0.907560
## MIA -1.145e-03 5.612e-03 -0.204 0.838315
## MINN 1.818e-03 1.202e-02 0.151 0.879798
## NE 3.165e-03 3.194e-02 0.099 0.921068
## NOR -4.459e-03 2.444e-02 -0.182 0.855199
## NYJ -1.296e-02 1.418e-02 -0.914 0.360618
## OAK 1.173e-03 1.366e-02 0.086 0.931562
## PHI -4.167e-03 1.563e-02 -0.267 0.789842
## PIT -9.834e-03 5.091e-03 -1.932 0.053398 .
## SD -1.064e-02 1.536e-02 -0.693 0.488426
## SEA -3.444e-03 1.131e-02 -0.305 0.760741
## TB -5.047e-03 1.117e-02 -0.452 0.651391
## TEN 1.429e-03 6.043e-03 0.236 0.813091
## WAS 6.074e-03 6.196e-03 0.980 0.326982
## avg_trg_team 7.333e-03 8.678e-03 0.845 0.398129
## avg_rectd_plyr 1.483e-03 4.720e-03 0.314 0.753296
## avg_tdr_team -2.054e-02 3.991e-02 -0.515 0.606745
## avg_rbra_team 1.626e-02 4.065e-02 0.400 0.689110
## avg_rbry_plyr 7.604e-01 4.902e-03 155.133 < 2e-16 ***
## avg_fuml_plyr 7.528e-04 5.779e-03 0.130 0.896352
## avg_fuml_team 4.848e-03 4.544e-02 0.107 0.915024
## avg_qbints_team NA NA NA NA
## avg_qbtdp_plyr -3.021e-04 6.019e-03 -0.050 0.959977
## avg_qbtdp_team NA NA NA NA
## grass_1 -7.836e-03 4.502e-03 -1.741 0.081769 .
## bad_weather_1 6.398e-03 3.980e-03 1.607 0.107989
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6487 on 27440 degrees of freedom
## Multiple R-squared: 0.5799, Adjusted R-squared: 0.5792
## F-statistic: 880.8 on 43 and 27440 DF, p-value: < 2.2e-16
Testing the data, we see that the training set and the test set are similar. The model seems to hold up through testing
RushattPredicted <- predict(linRegRushAtt, newdata = testTransformedra)
## Warning in predict.lm(linRegRushAtt, newdata = testTransformedra):
## prediction from a rank-deficient fit may be misleading
SSEruatt <- sum((RushattPredicted - testTransformedra$ra)^2)
SSTruatt <- sum((mean(c(testTransformedra$ra,trainTransformedra$ra))-testTransformedra$ra)^2)
r2_ruatt <- 1 - SSEruatt/SSTruatt
r2_ruatt
## [1] 0.6981411
rmse_ruatt <- sqrt(SSEruatt/nrow(testTransformedra))
rmse_ruatt
## [1] 0.5583721
Regression plots:
par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegRushAtt3, which = c(1:3,2))
Summary statistics:
confint(linRegRushAtt3)
## 2.5 % 97.5 %
## (Intercept) -0.007669245 0.0076692451
## height -0.017256818 0.0087562940
## weight -0.009113117 0.0143017475
## cold_weather 0.005913936 0.0220595475
## hot_weather -0.009137059 0.0063413757
## home_team_1 0.001691644 0.0183806622
## vertical1 -0.009974415 0.0074107595
## ARI -0.018134356 0.0210994601
## ATL -0.036992629 0.0404313835
## BAL -0.030210343 0.0215021045
## BUF -0.023112326 0.0155764292
## CAR -0.020098113 0.0087504440
## CHI -0.027330666 0.0110907770
## CIN -0.018733519 0.0104842673
## CLE -0.011937414 0.0090984867
## DAL -0.012949042 0.0096605859
## DEN -0.040914291 0.0411436294
## GB -0.023792568 0.0106904874
## IND -0.019089129 0.0002117549
## JAC -0.024651979 0.0075401749
## KC -0.011257522 0.0099982754
## MIA -0.012145205 0.0098548783
## MINN -0.021742134 0.0253776222
## NE -0.059432674 0.0657618248
## NOR -0.052353695 0.0434352291
## NYJ -0.040754676 0.0148292770
## OAK -0.025602975 0.0279494003
## PHI -0.034808261 0.0264752052
## PIT -0.019811999 0.0001439443
## SD -0.040745213 0.0194631912
## SEA -0.025611367 0.0187235469
## TB -0.026939122 0.0168457355
## TEN -0.010416503 0.0132743474
## WAS -0.006071133 0.0182184220
## avg_trg_team -0.009676353 0.0243414921
## avg_rectd_plyr -0.007767648 0.0107345278
## avg_tdr_team -0.098773936 0.0576858279
## avg_rbra_team -0.063405957 0.0959277180
## avg_rbry_plyr 0.750805188 0.7700203321
## avg_fuml_plyr -0.010573740 0.0120793526
## avg_fuml_team -0.084210860 0.0939076059
## avg_qbints_team NA NA
## avg_qbtdp_plyr -0.012100583 0.0114964322
## avg_qbtdp_team NA NA
## grass_1 -0.016659292 0.0009880277
## bad_weather_1 -0.001403838 0.0141992619
coef(summary(linRegRushAtt3))
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.344479e-14 0.003912779 5.991850e-12 1.0000000000
## height -4.250262e-03 0.006635827 -6.405022e-01 0.5218515088
## weight 2.594315e-03 0.005973026 4.343385e-01 0.6640460685
## cold_weather 1.398674e-02 0.004118672 3.395935e+00 0.0006849163
## hot_weather -1.397841e-03 0.003948479 -3.540203e-01 0.7233264149
## home_team_1 1.003615e-02 0.004257293 2.357403e+00 0.0184102659
## vertical1 -1.281828e-03 0.004434879 -2.890333e-01 0.7725580582
## ARI 1.482552e-03 0.010008369 1.481312e-01 0.8822402932
## ATL 1.719377e-03 0.019750515 8.705481e-02 0.9306285825
## BAL -4.354119e-03 0.013191611 -3.300673e-01 0.7413516436
## BUF -3.767948e-03 0.009869326 -3.817837e-01 0.7026247322
## CAR -5.673834e-03 0.007359136 -7.709919e-01 0.4407183832
## CHI -8.119944e-03 0.009801136 -8.284697e-01 0.4074117522
## CIN -4.124626e-03 0.007453325 -5.533941e-01 0.5799981114
## CLE -1.419464e-03 0.005366163 -2.645211e-01 0.7913803617
## DAL -1.644228e-03 0.005767614 -2.850794e-01 0.7755854311
## DEN 1.146694e-04 0.020932604 5.478027e-03 0.9956292289
## GB -6.551040e-03 0.008796471 -7.447350e-01 0.4564383012
## IND -9.438687e-03 0.004923568 -1.917042e+00 0.0552429659
## JAC -8.555902e-03 0.008212073 -1.041869e+00 0.2974817178
## KC -6.296235e-04 0.005422258 -1.161183e-01 0.9075596145
## MIA -1.145164e-03 0.005612122 -2.040518e-01 0.8383145395
## MINN 1.817744e-03 0.012020037 1.512262e-01 0.8797984050
## NE 3.164575e-03 0.031936550 9.908945e-02 0.9210679708
## NOR -4.459233e-03 0.024435321 -1.824913e-01 0.8551985469
## NYJ -1.296270e-02 0.014179215 -9.142043e-01 0.3606175306
## OAK 1.173213e-03 0.013660969 8.588063e-02 0.9315619327
## PHI -4.166528e-03 0.015633135 -2.665190e-01 0.7898415213
## PIT -9.834027e-03 0.005090671 -1.931774e+00 0.0533976464
## SD -1.064101e-02 0.015358891 -6.928241e-01 0.4884257835
## SEA -3.443910e-03 0.011309636 -3.045111e-01 0.7607408121
## TB -5.046693e-03 0.011169319 -4.518354e-01 0.6513911628
## TEN 1.428922e-03 0.006043429 2.364423e-01 0.8130912061
## WAS 6.073644e-03 0.006196156 9.802279e-01 0.3269822992
## avg_trg_team 7.332570e-03 0.008677798 8.449804e-01 0.3981291504
## avg_rectd_plyr 1.483440e-03 0.004719821 3.143000e-01 0.7532955779
## avg_tdr_team -2.054405e-02 0.039912178 -5.147315e-01 0.6067448256
## avg_rbra_team 1.626088e-02 0.040645300 4.000679e-01 0.6891096097
## avg_rbry_plyr 7.604128e-01 0.004901696 1.551326e+02 0.0000000000
## avg_fuml_plyr 7.528063e-04 0.005778701 1.302726e-01 0.8963517388
## avg_fuml_team 4.848373e-03 0.045437215 1.067049e-01 0.9150238822
## avg_qbtdp_plyr -3.020756e-04 0.006019492 -5.018291e-02 0.9599769975
## grass_1 -7.835632e-03 0.004501752 -1.740574e+00 0.0817694614
## bad_weather_1 6.397712e-03 0.003980280 1.607352e+00 0.1079886565
anova(linRegRushAtt3)
## Analysis of Variance Table
##
## Response: ry
## Df Sum Sq Mean Sq F value Pr(>F)
## height 1 1821.4 1821.4 4328.6020 < 2.2e-16 ***
## weight 1 1093.9 1093.9 2599.6901 < 2.2e-16 ***
## cold_weather 1 4.0 4.0 9.5199 0.0020345 **
## hot_weather 1 0.3 0.3 0.6398 0.4238057
## home_team_1 1 3.1 3.1 7.4732 0.0062663 **
## vertical1 1 21.9 21.9 52.1045 5.399e-13 ***
## ARI 1 1.0 1.0 2.3860 0.1224362
## ATL 1 5.3 5.3 12.6629 0.0003736 ***
## BAL 1 5.7 5.7 13.5172 0.0002368 ***
## BUF 1 7.3 7.3 17.2903 3.218e-05 ***
## CAR 1 0.1 0.1 0.2082 0.6481658
## CHI 1 9.0 9.0 21.4681 3.614e-06 ***
## CIN 1 3.6 3.6 8.4879 0.0035780 **
## CLE 1 1.9 1.9 4.4084 0.0357708 *
## DAL 1 3.7 3.7 8.8898 0.0028702 **
## DEN 1 0.1 0.1 0.1739 0.6766667
## GB 1 0.7 0.7 1.7186 0.1898847
## IND 1 4.6 4.6 10.8507 0.0009888 ***
## JAC 1 2.7 2.7 6.4831 0.0108958 *
## KC 1 1.5 1.5 3.5452 0.0597286 .
## MIA 1 0.6 0.6 1.4867 0.2227429
## MINN 1 17.0 17.0 40.3101 2.201e-10 ***
## NE 1 3.0 3.0 7.2446 0.0071156 **
## NOR 1 6.0 6.0 14.3043 0.0001558 ***
## NYJ 1 2.5 2.5 5.9654 0.0145955 *
## OAK 1 1.6 1.6 3.7620 0.0524391 .
## PHI 1 3.0 3.0 7.0162 0.0080823 **
## PIT 1 0.0 0.0 0.0095 0.9222679
## SD 1 0.0 0.0 0.1015 0.7500854
## SEA 1 0.2 0.2 0.4016 0.5262656
## TB 1 0.1 0.1 0.2326 0.6296331
## TEN 1 0.0 0.0 0.0004 0.9842026
## WAS 1 5.7 5.7 13.6255 0.0002236 ***
## avg_trg_team 1 0.6 0.6 1.4230 0.2329197
## avg_rectd_plyr 1 590.5 590.5 1403.2578 < 2.2e-16 ***
## avg_tdr_team 1 8.7 8.7 20.5736 5.762e-06 ***
## avg_rbra_team 1 0.6 0.6 1.4897 0.2222670
## avg_rbry_plyr 1 12302.7 12302.7 29238.2353 < 2.2e-16 ***
## avg_fuml_plyr 1 0.0 0.0 0.0148 0.9032697
## avg_fuml_team 1 0.0 0.0 0.0524 0.8188814
## avg_qbtdp_plyr 1 0.0 0.0 0.0037 0.9517883
## grass_1 1 1.2 1.2 2.8654 0.0905158 .
## bad_weather_1 1 1.1 1.1 2.5836 0.1079887
## Residuals 27440 11546.1 0.4
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
AIC
aic_ra <- step(lm(raregform, data = trainTransformedra), direction = "backward")
summary(aic_ra)
##
## Call:
## lm(formula = ra ~ cold_weather + forty1 + ARI + ATL + BAL + CIN +
## CLE + DEN + DET + HOU + MINN + NE + NYG + PHI + SD + STL +
## TB + TEN + WAS + avg_rbry_plyr + avg_rbry_pos, data = trainTransformedra)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.8018 -0.0844 -0.0078 0.0440 5.3582
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.086e-15 3.325e-03 0.000 1.000000
## cold_weather 1.199e-02 3.394e-03 3.533 0.000411 ***
## forty1 2.444e-02 3.407e-03 7.172 7.57e-13 ***
## ARI 7.117e-03 3.383e-03 2.104 0.035402 *
## ATL 5.889e-03 3.395e-03 1.735 0.082818 .
## BAL 7.136e-03 3.387e-03 2.107 0.035154 *
## CIN 1.006e-02 3.382e-03 2.974 0.002943 **
## CLE 9.494e-03 3.385e-03 2.804 0.005044 **
## DEN 1.569e-02 3.384e-03 4.637 3.55e-06 ***
## DET 1.027e-02 3.388e-03 3.033 0.002425 **
## HOU 1.093e-02 3.391e-03 3.223 0.001271 **
## MINN -6.040e-03 3.378e-03 -1.788 0.073763 .
## NE 7.150e-03 3.410e-03 2.097 0.036024 *
## NYG 1.257e-02 3.387e-03 3.712 0.000206 ***
## PHI -5.036e-03 3.377e-03 -1.491 0.135947
## SD 7.614e-03 3.384e-03 2.250 0.024476 *
## STL 1.089e-02 3.382e-03 3.219 0.001286 **
## TB 4.852e-03 3.384e-03 1.434 0.151720
## TEN 5.862e-03 3.380e-03 1.734 0.082869 .
## WAS 7.285e-03 3.383e-03 2.153 0.031309 *
## avg_rbry_plyr 7.967e-01 4.743e-03 167.980 < 2e-16 ***
## avg_rbry_pos 5.738e-02 4.696e-03 12.218 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5513 on 27462 degrees of freedom
## Multiple R-squared: 0.6963, Adjusted R-squared: 0.6961
## F-statistic: 2999 on 21 and 27462 DF, p-value: < 2.2e-16
RandomForest:
forest_ra <- randomForest(raregform, data = trainTransformedra,
importance = TRUE, ntree = 500)
plot(forest_ra)
varImpPlot(forest_ra)
###TDR PreProcess:
set.seed(123)
splitdr <- sample.split(nfl_data$tdr, SplitRatio = 0.7)
Traintdr <- subset(nfl_data, split == TRUE)
Testtdr <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(Traintdr, method = c("center", "scale"))
trainTransformedtdr <- predict(preProcValues, Traintdr)
testTransformedtdr <- predict(preProcValues, Testtdr)
ggpairs:
ggpairs(nfl_data[,c("tdr",colnames(filtered_nfl_data_fields[1:9]))])
ggpairs(nfl_data[,c("tdr",colnames(filtered_nfl_data_fields[10:18]))])
ggpairs(nfl_data[,c("tdr",colnames(filtered_nfl_data_fields[19:27]))])
ggpairs(nfl_data[,c("tdr",colnames(filtered_nfl_data_fields[28:36]))])
ggpairs(nfl_data[,c("tdr",colnames(filtered_nfl_data_fields[37:45]))])
ggpairs(nfl_data[,c("tdr",colnames(filtered_nfl_data_fields[46:51]))])
regression:
tdrregform <- formula(paste("ra ~ ",
paste(colnames(filtered_nfl_data_fields), collapse="+")))
linRegtdr <- lm(tdrregform, data = trainTransformedtdr)
summary(linRegRushAtt)
linRegtdr2 <- update(linRegRushYd,~.-height-weight-hot_weather
-home_team_1-age-is_TE-vertical1-ARI-ATL-BAL - BUF - CAR - CHI
-CIN - CLE - DAL - GB - JAC - KC - MIA
-MINN - NE - NOR -NYJ - OAK - PHI - PIT -SD - SEA
-TB - TEN - WAS
-avg_rectd_plyr-avg_trg_team-avg_tdr_team-avg_rbra_team
-avg_fuml_team-avg_fuml_plyr-avg_qbints_team-avg_qbtdp_team-avg_qbints_plyr
-bad_weather_1-grass_1)
summary(linRegtdr2)
linRegtdr3 <- update(linRegtdr2,~.-is_WR-is_TE-forty1-DET-HOU-NYG-STL-avg_rbry_pos)
summary(linRegtdr3)
##
## Call:
## lm(formula = ry ~ cold_weather + DEN + IND + avg_rbry_plyr +
## avg_qbtdp_plyr, data = trainTransformedry)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.4560 -0.0781 -0.0085 0.0082 7.1710
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.343e-14 3.912e-03 0.000 1.000000
## cold_weather 1.375e-02 3.916e-03 3.512 0.000446 ***
## DEN 7.084e-03 3.917e-03 1.808 0.070553 .
## IND -3.724e-03 3.916e-03 -0.951 0.341701
## avg_rbry_plyr 7.610e-01 3.913e-03 194.482 < 2e-16 ***
## avg_qbtdp_plyr -1.210e-03 3.913e-03 -0.309 0.757208
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6486 on 27478 degrees of freedom
## Multiple R-squared: 0.5794, Adjusted R-squared: 0.5793
## F-statistic: 7569 on 5 and 27478 DF, p-value: < 2.2e-16
Testing:
RushTdrPredicted <- predict(linRegtdr3, newdata = testTransformedtdr)
SSErutdr <- sum((RushTdrPredicted - testTransformedtdr$tdr)^2)
SSTrutdr <- sum((mean(nfl_data$tdr)-testTransformedtdr$tdr)^2)
r2_rutdr <- 1 - SSErutdr/SSTrutdr
r2_rutdr
## [1] 0.08372787
rmse_rutdr <- sqrt(SSErutdr/nrow(testTransformedtdr))
rmse_rutdr
## [1] 0.9645189
Plots:
par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegtdr3, which = c(1:3,2))
Summary Statistics:
confint(linRegtdr3)
## 2.5 % 97.5 %
## (Intercept) -0.0076686590 0.007668659
## cold_weather 0.0060761053 0.021427471
## DEN -0.0005940149 0.014762520
## IND -0.0113994186 0.003952273
## avg_rbry_plyr 0.7532922619 0.768630653
## avg_qbtdp_plyr -0.0088797123 0.006460201
coef(summary(linRegtdr3))
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.342949e-14 0.003912481 5.988396e-12 1.0000000000
## cold_weather 1.375179e-02 0.003916064 3.511635e+00 0.0004460732
## DEN 7.084252e-03 0.003917383 1.808415e+00 0.0705529133
## IND -3.723573e-03 0.003916147 -9.508255e-01 0.3417013100
## avg_rbry_plyr 7.609615e-01 0.003912754 1.944823e+02 0.0000000000
## avg_qbtdp_plyr -1.209756e-03 0.003913143 -3.091520e-01 0.7572082541
anova(linRegtdr3)
## Analysis of Variance Table
##
## Response: ry
## Df Sum Sq Mean Sq F value Pr(>F)
## cold_weather 1 7.5 7.5 17.7343 2.548e-05 ***
## DEN 1 0.1 0.1 0.3041 0.58133
## IND 1 2.2 2.2 5.2589 0.02184 *
## avg_rbry_plyr 1 15912.8 15912.8 37823.6618 < 2.2e-16 ***
## avg_qbtdp_plyr 1 0.0 0.0 0.0956 0.75721
## Residuals 27478 11560.3 0.4
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
AIC:
aic_tdr <- step(lm(tdrregform, data = trainTransformedtdr), direction = "backward")
summary(aic_tdr)
##
## Call:
## lm(formula = ra ~ cold_weather + forty1 + ARI + ATL + BAL + CIN +
## CLE + DEN + DET + HOU + MINN + NE + NYG + PHI + SD + STL +
## TB + TEN + WAS + avg_rbry_plyr + avg_rbry_pos, data = trainTransformedtdr)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.8018 -0.0844 -0.0078 0.0440 5.3582
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.086e-15 3.325e-03 0.000 1.000000
## cold_weather 1.199e-02 3.394e-03 3.533 0.000411 ***
## forty1 2.444e-02 3.407e-03 7.172 7.57e-13 ***
## ARI 7.117e-03 3.383e-03 2.104 0.035402 *
## ATL 5.889e-03 3.395e-03 1.735 0.082818 .
## BAL 7.136e-03 3.387e-03 2.107 0.035154 *
## CIN 1.006e-02 3.382e-03 2.974 0.002943 **
## CLE 9.494e-03 3.385e-03 2.804 0.005044 **
## DEN 1.569e-02 3.384e-03 4.637 3.55e-06 ***
## DET 1.027e-02 3.388e-03 3.033 0.002425 **
## HOU 1.093e-02 3.391e-03 3.223 0.001271 **
## MINN -6.040e-03 3.378e-03 -1.788 0.073763 .
## NE 7.150e-03 3.410e-03 2.097 0.036024 *
## NYG 1.257e-02 3.387e-03 3.712 0.000206 ***
## PHI -5.036e-03 3.377e-03 -1.491 0.135947
## SD 7.614e-03 3.384e-03 2.250 0.024476 *
## STL 1.089e-02 3.382e-03 3.219 0.001286 **
## TB 4.852e-03 3.384e-03 1.434 0.151720
## TEN 5.862e-03 3.380e-03 1.734 0.082869 .
## WAS 7.285e-03 3.383e-03 2.153 0.031309 *
## avg_rbry_plyr 7.967e-01 4.743e-03 167.980 < 2e-16 ***
## avg_rbry_pos 5.738e-02 4.696e-03 12.218 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5513 on 27462 degrees of freedom
## Multiple R-squared: 0.6963, Adjusted R-squared: 0.6961
## F-statistic: 2999 on 21 and 27462 DF, p-value: < 2.2e-16
RandomForest:
forest_tdr <- randomForest(tdrregform, data = trainTransformedtdr,
importance = TRUE, ntree = 500)
plot(forest_tdr)
varImpPlot(forest_tdr)
PreProcess:
set.seed(123)
splitfuml <- sample.split(nfl_data$fuml, SplitRatio = 0.7)
Trainfuml <- subset(nfl_data, split == TRUE)
Testfuml <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(Trainfuml, method = c("center", "scale"))
trainTransformedfuml <- predict(preProcValues, Trainfuml)
testTransformedfuml <- predict(preProcValues, Testfuml)
ggpairs:
ggpairs(nfl_data[,c("fuml",colnames(filtered_nfl_data_fields[1:9]))])
ggpairs(nfl_data[,c("fuml",colnames(filtered_nfl_data_fields[10:18]))])
ggpairs(nfl_data[,c("fuml",colnames(filtered_nfl_data_fields[19:27]))])
ggpairs(nfl_data[,c("fuml",colnames(filtered_nfl_data_fields[28:36]))])
ggpairs(nfl_data[,c("fuml",colnames(filtered_nfl_data_fields[37:45]))])
ggpairs(nfl_data[,c("fuml",colnames(filtered_nfl_data_fields[46:51]))])
fumlregform <- formula(paste("fuml ~ ",
paste(colnames(filtered_nfl_data_fields), collapse="+")))
linRegFumble <- lm(fumlregform, data = trainTransformedfuml)
summary(linRegFumble)
linRegFumble2 <- lm(fuml ~ avg_fuml_plyr, data = trainTransformedfuml)
summary(linRegFumble2)
##
## Call:
## lm(formula = fuml ~ avg_fuml_plyr, data = trainTransformedfuml)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.2292 -0.2679 -0.1108 0.0000 16.0207
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.991e-16 5.748e-03 0.00 1
## avg_fuml_plyr 3.033e-01 5.748e-03 52.76 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9529 on 27482 degrees of freedom
## Multiple R-squared: 0.09197, Adjusted R-squared: 0.09194
## F-statistic: 2784 on 1 and 27482 DF, p-value: < 2.2e-16
Definitely does not seem to be a good predictor
Testing the data, we see that the training set and the test set are similar. The model seems to hold up through testing
FumblePredicted <- predict(linRegFumble2, newdata = testTransformedfuml)
SSEfum <- sum((FumblePredicted - testTransformedfuml$fuml)^2)
SSTfum <- sum((mean(nfl_data$fuml)-testTransformedfuml$fuml)^2)
r2_fum <- 1 - SSEfum/SSTfum
r2_fum
## [1] 0.08604778
rmse_fum <- sqrt(SSEfum/nrow(testTransformedfuml))
rmse_fum
## [1] 0.9529244
Regression plots:
par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegFumble2, which = c(1:3,5))
The plots don’t seem to confirm that this is a good model for the data
Summary statistics:
confint(linRegFumble2)
## 2.5 % 97.5 %
## (Intercept) -0.01126638 0.01126638
## avg_fuml_plyr 0.29200585 0.31453901
coef(summary(linRegFumble2))
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.990785e-16 0.005748004 3.463437e-14 1
## avg_fuml_plyr 3.032724e-01 0.005748108 5.276039e+01 0
anova(linRegFumble2)
## Analysis of Variance Table
##
## Response: fuml
## Df Sum Sq Mean Sq F value Pr(>F)
## avg_fuml_plyr 1 2527.7 2527.73 2783.7 < 2.2e-16 ***
## Residuals 27482 24955.3 0.91
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
AIC:
aic_fuml <- step(lm(fumlregform, data = trainTransformedfuml), direction = "backward")
## Start: AIC=-2583.04
## fuml ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr +
## avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_fuml_team + avg_qbints_team + avg_qbtdp_plyr +
## avg_qbtdp_team + grass_1 + bad_weather_1
##
##
## Step: AIC=-2583.04
## fuml ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr +
## avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_fuml_team + avg_qbints_team + avg_qbtdp_plyr +
## grass_1 + bad_weather_1
##
##
## Step: AIC=-2583.04
## fuml ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr +
## avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_fuml_team + avg_qbtdp_plyr + grass_1 +
## bad_weather_1
##
##
## Step: AIC=-2583.04
## fuml ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr +
## avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
##
##
## Step: AIC=-2583.04
## fuml ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr +
## avg_tdr_team + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr +
## avg_qbtdp_plyr + grass_1 + bad_weather_1
##
##
## Step: AIC=-2583.04
## fuml ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr +
## avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr +
## grass_1 + bad_weather_1
##
##
## Step: AIC=-2583.04
## fuml ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD +
## SEA + STL + TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr +
## avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + grass_1 +
## bad_weather_1
##
## Df Sum of Sq RSS AIC
## - MIA 1 0.00 24935 -2585.0
## - weight 1 0.00 24935 -2585.0
## - OAK 1 0.01 24935 -2585.0
## - KC 1 0.01 24935 -2585.0
## - SEA 1 0.01 24935 -2585.0
## - STL 1 0.01 24935 -2585.0
## - SD 1 0.01 24935 -2585.0
## - hot_weather 1 0.02 24935 -2585.0
## - HOU 1 0.03 24935 -2585.0
## - DEN 1 0.04 24935 -2585.0
## - PHI 1 0.04 24935 -2585.0
## - NYG 1 0.05 24935 -2585.0
## - avg_rectd_plyr 1 0.08 24935 -2585.0
## - bad_weather_1 1 0.08 24935 -2584.9
## - JAC 1 0.09 24935 -2584.9
## - GB 1 0.13 24935 -2584.9
## - TB 1 0.14 24935 -2584.9
## - DET 1 0.14 24935 -2584.9
## - CLE 1 0.14 24935 -2584.9
## - MINN 1 0.17 24935 -2584.8
## - height 1 0.18 24935 -2584.8
## - forty1 1 0.18 24935 -2584.8
## - ATL 1 0.21 24935 -2584.8
## - WAS 1 0.24 24935 -2584.8
## - avg_rbry_plyr 1 0.25 24935 -2584.8
## - avg_rbry_pos 1 0.26 24935 -2584.8
## - home_team_1 1 0.27 24935 -2584.8
## - DAL 1 0.29 24935 -2584.7
## - BUF 1 0.29 24935 -2584.7
## - vertical1 1 0.34 24935 -2584.7
## - CAR 1 0.39 24935 -2584.6
## - PIT 1 0.39 24935 -2584.6
## - ARI 1 0.46 24936 -2584.5
## - BAL 1 0.57 24936 -2584.4
## - avg_qbtdp_plyr 1 0.79 24936 -2584.2
## - TEN 1 0.92 24936 -2584.0
## - CIN 1 1.07 24936 -2583.9
## - NE 1 1.41 24936 -2583.5
## - NOR 1 1.49 24937 -2583.4
## - grass_1 1 1.55 24937 -2583.3
## - IND 1 1.60 24937 -2583.3
## <none> 24935 -2583.0
## - NYJ 1 2.17 24937 -2582.6
## - CHI 1 2.45 24938 -2582.3
## - cold_weather 1 3.26 24938 -2581.4
## - avg_fuml_plyr 1 1200.94 26136 -1292.2
##
## Step: AIC=-2585.04
## fuml ~ height + weight + cold_weather + hot_weather + home_team_1 +
## forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI +
## CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC +
## MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + SEA +
## STL + TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - weight 1 0.00 24935 -2587.0
## - OAK 1 0.01 24935 -2587.0
## - KC 1 0.01 24935 -2587.0
## - STL 1 0.01 24935 -2587.0
## - SD 1 0.01 24935 -2587.0
## - hot_weather 1 0.02 24935 -2587.0
## - SEA 1 0.02 24935 -2587.0
## - HOU 1 0.03 24935 -2587.0
## - DEN 1 0.04 24935 -2587.0
## - PHI 1 0.06 24935 -2587.0
## - NYG 1 0.07 24935 -2587.0
## - avg_rectd_plyr 1 0.08 24935 -2587.0
## - bad_weather_1 1 0.08 24935 -2586.9
## - JAC 1 0.10 24935 -2586.9
## - GB 1 0.16 24935 -2586.9
## - DET 1 0.17 24935 -2586.8
## - TB 1 0.17 24935 -2586.8
## - CLE 1 0.17 24935 -2586.8
## - height 1 0.18 24935 -2586.8
## - forty1 1 0.18 24935 -2586.8
## - MINN 1 0.21 24935 -2586.8
## - avg_rbry_plyr 1 0.25 24935 -2586.8
## - ATL 1 0.25 24935 -2586.8
## - avg_rbry_pos 1 0.26 24935 -2586.8
## - home_team_1 1 0.27 24935 -2586.8
## - WAS 1 0.29 24935 -2586.7
## - vertical1 1 0.33 24935 -2586.7
## - DAL 1 0.35 24935 -2586.7
## - BUF 1 0.35 24935 -2586.7
## - CAR 1 0.48 24936 -2586.5
## - PIT 1 0.49 24936 -2586.5
## - ARI 1 0.57 24936 -2586.4
## - BAL 1 0.71 24936 -2586.2
## - avg_qbtdp_plyr 1 0.79 24936 -2586.2
## - TEN 1 1.16 24936 -2585.8
## - CIN 1 1.35 24936 -2585.6
## - grass_1 1 1.55 24937 -2585.3
## - NE 1 1.79 24937 -2585.1
## <none> 24935 -2585.0
## - NOR 1 1.91 24937 -2584.9
## - IND 1 2.03 24937 -2584.8
## - NYJ 1 2.77 24938 -2584.0
## - CHI 1 3.11 24938 -2583.6
## - cold_weather 1 3.26 24938 -2583.4
## - avg_fuml_plyr 1 1201.25 26136 -1293.9
##
## Step: AIC=-2587.03
## fuml ~ height + cold_weather + hot_weather + home_team_1 + forty1 +
## vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE +
## DAL + DEN + DET + GB + HOU + IND + JAC + KC + MINN + NE +
## NOR + NYG + NYJ + OAK + PHI + PIT + SD + SEA + STL + TB +
## TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - OAK 1 0.01 24935 -2589.0
## - KC 1 0.01 24935 -2589.0
## - STL 1 0.01 24935 -2589.0
## - SD 1 0.01 24935 -2589.0
## - hot_weather 1 0.02 24935 -2589.0
## - SEA 1 0.02 24935 -2589.0
## - HOU 1 0.03 24935 -2589.0
## - DEN 1 0.04 24935 -2589.0
## - PHI 1 0.06 24935 -2589.0
## - NYG 1 0.07 24935 -2589.0
## - avg_rectd_plyr 1 0.07 24935 -2588.9
## - bad_weather_1 1 0.08 24935 -2588.9
## - JAC 1 0.10 24935 -2588.9
## - GB 1 0.16 24935 -2588.9
## - DET 1 0.17 24935 -2588.8
## - TB 1 0.17 24935 -2588.8
## - CLE 1 0.17 24935 -2588.8
## - forty1 1 0.19 24935 -2588.8
## - MINN 1 0.21 24935 -2588.8
## - avg_rbry_plyr 1 0.25 24935 -2588.8
## - ATL 1 0.25 24935 -2588.8
## - home_team_1 1 0.27 24935 -2588.7
## - WAS 1 0.29 24935 -2588.7
## - vertical1 1 0.33 24935 -2588.7
## - avg_rbry_pos 1 0.33 24935 -2588.7
## - DAL 1 0.35 24935 -2588.6
## - BUF 1 0.36 24935 -2588.6
## - height 1 0.43 24936 -2588.6
## - CAR 1 0.48 24936 -2588.5
## - PIT 1 0.49 24936 -2588.5
## - ARI 1 0.57 24936 -2588.4
## - BAL 1 0.71 24936 -2588.2
## - avg_qbtdp_plyr 1 0.88 24936 -2588.1
## - TEN 1 1.17 24936 -2587.8
## - CIN 1 1.36 24936 -2587.5
## - grass_1 1 1.55 24937 -2587.3
## - NE 1 1.80 24937 -2587.1
## <none> 24935 -2587.0
## - NOR 1 1.91 24937 -2586.9
## - IND 1 2.03 24937 -2586.8
## - NYJ 1 2.77 24938 -2586.0
## - CHI 1 3.12 24938 -2585.6
## - cold_weather 1 3.26 24938 -2585.4
## - avg_fuml_plyr 1 1211.40 26146 -1285.2
##
## Step: AIC=-2589.03
## fuml ~ height + cold_weather + hot_weather + home_team_1 + forty1 +
## vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE +
## DAL + DEN + DET + GB + HOU + IND + JAC + KC + MINN + NE +
## NOR + NYG + NYJ + PHI + PIT + SD + SEA + STL + TB + TEN +
## WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr +
## avg_qbtdp_plyr + grass_1 + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - KC 1 0.00 24935 -2591.0
## - STL 1 0.01 24935 -2591.0
## - SD 1 0.01 24935 -2591.0
## - hot_weather 1 0.02 24935 -2591.0
## - HOU 1 0.03 24935 -2591.0
## - DEN 1 0.03 24935 -2591.0
## - SEA 1 0.03 24935 -2591.0
## - avg_rectd_plyr 1 0.07 24935 -2590.9
## - bad_weather_1 1 0.08 24935 -2590.9
## - PHI 1 0.09 24935 -2590.9
## - NYG 1 0.09 24935 -2590.9
## - JAC 1 0.09 24935 -2590.9
## - GB 1 0.16 24935 -2590.8
## - DET 1 0.17 24935 -2590.8
## - TB 1 0.17 24935 -2590.8
## - CLE 1 0.17 24935 -2590.8
## - forty1 1 0.19 24935 -2590.8
## - MINN 1 0.21 24935 -2590.8
## - avg_rbry_plyr 1 0.24 24935 -2590.8
## - ATL 1 0.25 24935 -2590.8
## - home_team_1 1 0.26 24935 -2590.7
## - WAS 1 0.29 24935 -2590.7
## - avg_rbry_pos 1 0.33 24935 -2590.7
## - vertical1 1 0.33 24935 -2590.7
## - DAL 1 0.36 24935 -2590.6
## - BUF 1 0.37 24935 -2590.6
## - height 1 0.42 24936 -2590.6
## - CAR 1 0.50 24936 -2590.5
## - PIT 1 0.51 24936 -2590.5
## - ARI 1 0.60 24936 -2590.4
## - BAL 1 0.76 24936 -2590.2
## - avg_qbtdp_plyr 1 0.88 24936 -2590.1
## - TEN 1 1.26 24936 -2589.6
## - CIN 1 1.45 24937 -2589.4
## - grass_1 1 1.56 24937 -2589.3
## <none> 24935 -2589.0
## - NE 1 1.93 24937 -2588.9
## - NOR 1 2.08 24937 -2588.7
## - IND 1 2.19 24937 -2588.6
## - NYJ 1 3.01 24938 -2587.7
## - cold_weather 1 3.26 24938 -2587.4
## - CHI 1 3.40 24938 -2587.3
## - avg_fuml_plyr 1 1211.79 26147 -1286.8
##
## Step: AIC=-2591.02
## fuml ~ height + cold_weather + hot_weather + home_team_1 + forty1 +
## vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE +
## DAL + DEN + DET + GB + HOU + IND + JAC + MINN + NE + NOR +
## NYG + NYJ + PHI + PIT + SD + SEA + STL + TB + TEN + WAS +
## avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr +
## avg_qbtdp_plyr + grass_1 + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - STL 1 0.01 24935 -2593.0
## - SD 1 0.01 24935 -2593.0
## - hot_weather 1 0.02 24935 -2593.0
## - HOU 1 0.03 24935 -2593.0
## - DEN 1 0.03 24935 -2593.0
## - SEA 1 0.04 24935 -2593.0
## - avg_rectd_plyr 1 0.07 24935 -2592.9
## - bad_weather_1 1 0.08 24935 -2592.9
## - JAC 1 0.09 24935 -2592.9
## - PHI 1 0.10 24935 -2592.9
## - NYG 1 0.11 24935 -2592.9
## - GB 1 0.16 24935 -2592.8
## - DET 1 0.17 24935 -2592.8
## - TB 1 0.17 24935 -2592.8
## - CLE 1 0.17 24935 -2592.8
## - forty1 1 0.19 24935 -2592.8
## - MINN 1 0.21 24935 -2592.8
## - avg_rbry_plyr 1 0.24 24935 -2592.8
## - ATL 1 0.25 24935 -2592.7
## - home_team_1 1 0.26 24935 -2592.7
## - WAS 1 0.30 24935 -2592.7
## - vertical1 1 0.33 24935 -2592.7
## - avg_rbry_pos 1 0.33 24935 -2592.7
## - DAL 1 0.37 24935 -2592.6
## - BUF 1 0.37 24935 -2592.6
## - height 1 0.43 24936 -2592.6
## - CAR 1 0.52 24936 -2592.5
## - PIT 1 0.53 24936 -2592.4
## - ARI 1 0.62 24936 -2592.3
## - BAL 1 0.78 24936 -2592.2
## - avg_qbtdp_plyr 1 0.88 24936 -2592.1
## - TEN 1 1.31 24936 -2591.6
## - CIN 1 1.51 24937 -2591.4
## - grass_1 1 1.57 24937 -2591.3
## <none> 24935 -2591.0
## - NE 1 2.02 24937 -2590.8
## - NOR 1 2.17 24937 -2590.6
## - IND 1 2.28 24937 -2590.5
## - NYJ 1 3.15 24938 -2589.6
## - cold_weather 1 3.26 24938 -2589.4
## - CHI 1 3.57 24939 -2589.1
## - avg_fuml_plyr 1 1211.80 26147 -1288.8
##
## Step: AIC=-2593.02
## fuml ~ height + cold_weather + hot_weather + home_team_1 + forty1 +
## vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE +
## DAL + DEN + DET + GB + HOU + IND + JAC + MINN + NE + NOR +
## NYG + NYJ + PHI + PIT + SD + SEA + TB + TEN + WAS + avg_rectd_plyr +
## avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr +
## grass_1 + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - SD 1 0.01 24935 -2595.0
## - hot_weather 1 0.02 24935 -2595.0
## - HOU 1 0.02 24935 -2595.0
## - DEN 1 0.03 24935 -2595.0
## - SEA 1 0.05 24935 -2595.0
## - avg_rectd_plyr 1 0.07 24935 -2594.9
## - JAC 1 0.08 24935 -2594.9
## - bad_weather_1 1 0.09 24935 -2594.9
## - PHI 1 0.12 24935 -2594.9
## - NYG 1 0.12 24935 -2594.9
## - GB 1 0.15 24935 -2594.8
## - DET 1 0.16 24935 -2594.8
## - TB 1 0.16 24935 -2594.8
## - CLE 1 0.16 24935 -2594.8
## - forty1 1 0.19 24935 -2594.8
## - MINN 1 0.20 24935 -2594.8
## - avg_rbry_plyr 1 0.24 24935 -2594.8
## - ATL 1 0.25 24935 -2594.7
## - home_team_1 1 0.26 24935 -2594.7
## - WAS 1 0.29 24935 -2594.7
## - vertical1 1 0.33 24935 -2594.7
## - avg_rbry_pos 1 0.33 24935 -2594.7
## - DAL 1 0.36 24935 -2594.6
## - BUF 1 0.37 24935 -2594.6
## - height 1 0.43 24936 -2594.5
## - CAR 1 0.51 24936 -2594.4
## - PIT 1 0.52 24936 -2594.4
## - ARI 1 0.62 24936 -2594.3
## - BAL 1 0.78 24936 -2594.2
## - avg_qbtdp_plyr 1 0.88 24936 -2594.1
## - TEN 1 1.32 24936 -2593.6
## - CIN 1 1.53 24937 -2593.3
## - grass_1 1 1.57 24937 -2593.3
## <none> 24935 -2593.0
## - NE 1 2.06 24937 -2592.8
## - NOR 1 2.23 24937 -2592.6
## - IND 1 2.34 24937 -2592.4
## - NYJ 1 3.23 24938 -2591.4
## - cold_weather 1 3.26 24938 -2591.4
## - CHI 1 3.63 24939 -2591.0
## - avg_fuml_plyr 1 1212.23 26147 -1290.3
##
## Step: AIC=-2595.01
## fuml ~ height + cold_weather + hot_weather + home_team_1 + forty1 +
## vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE +
## DAL + DEN + DET + GB + HOU + IND + JAC + MINN + NE + NOR +
## NYG + NYJ + PHI + PIT + SEA + TB + TEN + WAS + avg_rectd_plyr +
## avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr +
## grass_1 + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - hot_weather 1 0.02 24935 -2597.0
## - HOU 1 0.02 24935 -2597.0
## - DEN 1 0.02 24935 -2597.0
## - SEA 1 0.06 24935 -2596.9
## - avg_rectd_plyr 1 0.07 24935 -2596.9
## - JAC 1 0.08 24935 -2596.9
## - bad_weather_1 1 0.09 24935 -2596.9
## - PHI 1 0.13 24935 -2596.9
## - NYG 1 0.14 24935 -2596.9
## - GB 1 0.15 24935 -2596.8
## - DET 1 0.15 24935 -2596.8
## - TB 1 0.16 24935 -2596.8
## - CLE 1 0.16 24935 -2596.8
## - forty1 1 0.19 24935 -2596.8
## - MINN 1 0.20 24935 -2596.8
## - ATL 1 0.24 24935 -2596.7
## - avg_rbry_plyr 1 0.24 24935 -2596.7
## - home_team_1 1 0.26 24935 -2596.7
## - WAS 1 0.28 24935 -2596.7
## - vertical1 1 0.33 24935 -2596.7
## - avg_rbry_pos 1 0.33 24935 -2596.7
## - DAL 1 0.36 24935 -2596.6
## - BUF 1 0.36 24935 -2596.6
## - height 1 0.43 24936 -2596.5
## - CAR 1 0.51 24936 -2596.4
## - PIT 1 0.52 24936 -2596.4
## - ARI 1 0.61 24936 -2596.3
## - BAL 1 0.78 24936 -2596.2
## - avg_qbtdp_plyr 1 0.88 24936 -2596.0
## - TEN 1 1.32 24936 -2595.6
## - CIN 1 1.54 24937 -2595.3
## - grass_1 1 1.58 24937 -2595.3
## <none> 24935 -2595.0
## - NE 1 2.08 24937 -2594.7
## - NOR 1 2.25 24937 -2594.5
## - IND 1 2.36 24937 -2594.4
## - cold_weather 1 3.27 24938 -2593.4
## - NYJ 1 3.27 24938 -2593.4
## - CHI 1 3.67 24939 -2593.0
## - avg_fuml_plyr 1 1212.24 26147 -1292.3
##
## Step: AIC=-2596.99
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 +
## ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE + DAL + DEN +
## DET + GB + HOU + IND + JAC + MINN + NE + NOR + NYG + NYJ +
## PHI + PIT + SEA + TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr +
## avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + grass_1 +
## bad_weather_1
##
## Df Sum of Sq RSS AIC
## - HOU 1 0.02 24935 -2599.0
## - DEN 1 0.02 24935 -2599.0
## - SEA 1 0.06 24935 -2598.9
## - avg_rectd_plyr 1 0.07 24935 -2598.9
## - JAC 1 0.08 24935 -2598.9
## - bad_weather_1 1 0.09 24935 -2598.9
## - PHI 1 0.13 24935 -2598.8
## - NYG 1 0.14 24935 -2598.8
## - GB 1 0.15 24935 -2598.8
## - TB 1 0.15 24935 -2598.8
## - DET 1 0.16 24935 -2598.8
## - CLE 1 0.16 24935 -2598.8
## - forty1 1 0.19 24935 -2598.8
## - MINN 1 0.20 24935 -2598.8
## - avg_rbry_plyr 1 0.24 24935 -2598.7
## - ATL 1 0.24 24935 -2598.7
## - home_team_1 1 0.26 24935 -2598.7
## - WAS 1 0.29 24935 -2598.7
## - vertical1 1 0.33 24935 -2598.6
## - avg_rbry_pos 1 0.33 24935 -2598.6
## - BUF 1 0.36 24935 -2598.6
## - DAL 1 0.36 24935 -2598.6
## - height 1 0.43 24936 -2598.5
## - CAR 1 0.51 24936 -2598.4
## - PIT 1 0.52 24936 -2598.4
## - ARI 1 0.61 24936 -2598.3
## - BAL 1 0.78 24936 -2598.1
## - avg_qbtdp_plyr 1 0.88 24936 -2598.0
## - TEN 1 1.33 24936 -2597.5
## - CIN 1 1.54 24937 -2597.3
## - grass_1 1 1.57 24937 -2597.3
## <none> 24935 -2597.0
## - NE 1 2.08 24937 -2596.7
## - NOR 1 2.25 24937 -2596.5
## - IND 1 2.36 24937 -2596.4
## - cold_weather 1 3.25 24938 -2595.4
## - NYJ 1 3.26 24938 -2595.4
## - CHI 1 3.68 24939 -2594.9
## - avg_fuml_plyr 1 1212.29 26147 -1294.2
##
## Step: AIC=-2598.97
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 +
## ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE + DAL + DEN +
## DET + GB + IND + JAC + MINN + NE + NOR + NYG + NYJ + PHI +
## PIT + SEA + TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr +
## avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + grass_1 +
## bad_weather_1
##
## Df Sum of Sq RSS AIC
## - DEN 1 0.02 24935 -2600.9
## - JAC 1 0.07 24935 -2600.9
## - avg_rectd_plyr 1 0.07 24935 -2600.9
## - SEA 1 0.08 24935 -2600.9
## - bad_weather_1 1 0.08 24935 -2600.9
## - GB 1 0.14 24935 -2600.8
## - DET 1 0.14 24935 -2600.8
## - PHI 1 0.14 24935 -2600.8
## - TB 1 0.14 24935 -2600.8
## - CLE 1 0.15 24935 -2600.8
## - NYG 1 0.16 24935 -2600.8
## - MINN 1 0.18 24935 -2600.8
## - forty1 1 0.20 24935 -2600.8
## - ATL 1 0.23 24935 -2600.7
## - avg_rbry_plyr 1 0.25 24935 -2600.7
## - home_team_1 1 0.25 24935 -2600.7
## - WAS 1 0.27 24935 -2600.7
## - avg_rbry_pos 1 0.33 24935 -2600.6
## - vertical1 1 0.34 24935 -2600.6
## - BUF 1 0.34 24935 -2600.6
## - DAL 1 0.34 24935 -2600.6
## - height 1 0.43 24936 -2600.5
## - CAR 1 0.49 24936 -2600.4
## - PIT 1 0.50 24936 -2600.4
## - ARI 1 0.60 24936 -2600.3
## - BAL 1 0.77 24936 -2600.1
## - avg_qbtdp_plyr 1 0.88 24936 -2600.0
## - TEN 1 1.31 24936 -2599.5
## - CIN 1 1.52 24937 -2599.3
## - grass_1 1 1.55 24937 -2599.3
## <none> 24935 -2599.0
## - NE 1 2.07 24937 -2598.7
## - NOR 1 2.24 24937 -2598.5
## - IND 1 2.36 24937 -2598.4
## - NYJ 1 3.26 24938 -2597.4
## - cold_weather 1 3.27 24938 -2597.4
## - CHI 1 3.68 24939 -2596.9
## - avg_fuml_plyr 1 1213.13 26148 -1295.3
##
## Step: AIC=-2600.95
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 +
## ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE + DAL + DET +
## GB + IND + JAC + MINN + NE + NOR + NYG + NYJ + PHI + PIT +
## SEA + TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - JAC 1 0.06 24935 -2602.9
## - avg_rectd_plyr 1 0.08 24935 -2602.9
## - bad_weather_1 1 0.09 24935 -2602.9
## - SEA 1 0.09 24935 -2602.9
## - GB 1 0.13 24935 -2602.8
## - TB 1 0.13 24935 -2602.8
## - DET 1 0.13 24935 -2602.8
## - CLE 1 0.14 24935 -2602.8
## - PHI 1 0.16 24935 -2602.8
## - MINN 1 0.17 24935 -2602.8
## - NYG 1 0.17 24935 -2602.8
## - forty1 1 0.20 24935 -2602.7
## - ATL 1 0.22 24935 -2602.7
## - avg_rbry_plyr 1 0.25 24935 -2602.7
## - home_team_1 1 0.26 24935 -2602.7
## - WAS 1 0.26 24935 -2602.7
## - BUF 1 0.33 24935 -2602.6
## - DAL 1 0.33 24935 -2602.6
## - avg_rbry_pos 1 0.33 24935 -2602.6
## - vertical1 1 0.35 24935 -2602.6
## - height 1 0.44 24936 -2602.5
## - CAR 1 0.48 24936 -2602.4
## - PIT 1 0.48 24936 -2602.4
## - ARI 1 0.58 24936 -2602.3
## - BAL 1 0.75 24936 -2602.1
## - avg_qbtdp_plyr 1 0.88 24936 -2602.0
## - TEN 1 1.29 24936 -2601.5
## - CIN 1 1.51 24937 -2601.3
## - grass_1 1 1.57 24937 -2601.2
## <none> 24935 -2600.9
## - NE 1 2.05 24937 -2600.7
## - NOR 1 2.23 24937 -2600.5
## - IND 1 2.34 24937 -2600.4
## - cold_weather 1 3.25 24938 -2599.4
## - NYJ 1 3.25 24938 -2599.4
## - CHI 1 3.67 24939 -2598.9
## - avg_fuml_plyr 1 1213.27 26148 -1297.2
##
## Step: AIC=-2602.88
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 +
## ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE + DAL + DET +
## GB + IND + MINN + NE + NOR + NYG + NYJ + PHI + PIT + SEA +
## TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - avg_rectd_plyr 1 0.08 24935 -2604.8
## - bad_weather_1 1 0.09 24935 -2604.8
## - SEA 1 0.11 24935 -2604.8
## - GB 1 0.11 24935 -2604.8
## - TB 1 0.11 24935 -2604.8
## - DET 1 0.12 24935 -2604.8
## - CLE 1 0.12 24935 -2604.8
## - MINN 1 0.15 24935 -2604.7
## - PHI 1 0.18 24935 -2604.7
## - ATL 1 0.20 24935 -2604.7
## - NYG 1 0.20 24935 -2604.7
## - forty1 1 0.21 24935 -2604.7
## - WAS 1 0.23 24935 -2604.6
## - avg_rbry_plyr 1 0.25 24935 -2604.6
## - home_team_1 1 0.26 24935 -2604.6
## - BUF 1 0.30 24936 -2604.6
## - DAL 1 0.30 24936 -2604.6
## - avg_rbry_pos 1 0.34 24936 -2604.5
## - vertical1 1 0.37 24936 -2604.5
## - height 1 0.45 24936 -2604.4
## - CAR 1 0.45 24936 -2604.4
## - PIT 1 0.45 24936 -2604.4
## - ARI 1 0.55 24936 -2604.3
## - BAL 1 0.71 24936 -2604.1
## - avg_qbtdp_plyr 1 0.89 24936 -2603.9
## - TEN 1 1.25 24936 -2603.5
## - CIN 1 1.46 24937 -2603.3
## - grass_1 1 1.58 24937 -2603.1
## <none> 24935 -2602.9
## - NE 1 2.00 24937 -2602.7
## - NOR 1 2.17 24937 -2602.5
## - IND 1 2.29 24938 -2602.4
## - NYJ 1 3.19 24938 -2601.4
## - cold_weather 1 3.28 24938 -2601.3
## - CHI 1 3.61 24939 -2600.9
## - avg_fuml_plyr 1 1213.63 26149 -1298.7
##
## Step: AIC=-2604.8
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 +
## ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE + DAL + DET +
## GB + IND + MINN + NE + NOR + NYG + NYJ + PHI + PIT + SEA +
## TB + TEN + WAS + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr +
## avg_qbtdp_plyr + grass_1 + bad_weather_1
##
## Df Sum of Sq RSS AIC
## - bad_weather_1 1 0.09 24935 -2606.7
## - SEA 1 0.10 24935 -2606.7
## - CLE 1 0.11 24935 -2606.7
## - TB 1 0.11 24935 -2606.7
## - DET 1 0.13 24935 -2606.7
## - GB 1 0.13 24935 -2606.7
## - MINN 1 0.14 24935 -2606.6
## - PHI 1 0.18 24935 -2606.6
## - forty1 1 0.19 24935 -2606.6
## - NYG 1 0.19 24935 -2606.6
## - ATL 1 0.21 24936 -2606.6
## - WAS 1 0.23 24936 -2606.5
## - avg_rbry_plyr 1 0.25 24936 -2606.5
## - home_team_1 1 0.27 24936 -2606.5
## - BUF 1 0.30 24936 -2606.5
## - DAL 1 0.32 24936 -2606.4
## - vertical1 1 0.39 24936 -2606.4
## - height 1 0.40 24936 -2606.4
## - CAR 1 0.44 24936 -2606.3
## - PIT 1 0.46 24936 -2606.3
## - avg_rbry_pos 1 0.50 24936 -2606.2
## - ARI 1 0.54 24936 -2606.2
## - BAL 1 0.71 24936 -2606.0
## - avg_qbtdp_plyr 1 0.82 24936 -2605.9
## - TEN 1 1.23 24937 -2605.4
## - CIN 1 1.46 24937 -2605.2
## - grass_1 1 1.59 24937 -2605.0
## <none> 24935 -2604.8
## - NE 1 2.15 24937 -2604.4
## - NOR 1 2.28 24938 -2604.3
## - IND 1 2.31 24938 -2604.2
## - NYJ 1 3.18 24938 -2603.3
## - cold_weather 1 3.29 24939 -2603.2
## - CHI 1 3.60 24939 -2602.8
## - avg_fuml_plyr 1 1214.04 26149 -1300.2
##
## Step: AIC=-2606.7
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 +
## ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE + DAL + DET +
## GB + IND + MINN + NE + NOR + NYG + NYJ + PHI + PIT + SEA +
## TB + TEN + WAS + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr +
## avg_qbtdp_plyr + grass_1
##
## Df Sum of Sq RSS AIC
## - CLE 1 0.10 24935 -2608.6
## - SEA 1 0.11 24935 -2608.6
## - TB 1 0.12 24935 -2608.6
## - DET 1 0.12 24936 -2608.6
## - GB 1 0.13 24936 -2608.6
## - MINN 1 0.14 24936 -2608.6
## - PHI 1 0.18 24936 -2608.5
## - forty1 1 0.18 24936 -2608.5
## - NYG 1 0.20 24936 -2608.5
## - ATL 1 0.21 24936 -2608.5
## - WAS 1 0.23 24936 -2608.4
## - avg_rbry_plyr 1 0.25 24936 -2608.4
## - home_team_1 1 0.26 24936 -2608.4
## - BUF 1 0.29 24936 -2608.4
## - DAL 1 0.32 24936 -2608.3
## - vertical1 1 0.39 24936 -2608.3
## - height 1 0.40 24936 -2608.3
## - CAR 1 0.44 24936 -2608.2
## - PIT 1 0.46 24936 -2608.2
## - avg_rbry_pos 1 0.50 24936 -2608.2
## - ARI 1 0.54 24936 -2608.1
## - BAL 1 0.71 24936 -2607.9
## - avg_qbtdp_plyr 1 0.81 24936 -2607.8
## - TEN 1 1.24 24937 -2607.3
## - CIN 1 1.45 24937 -2607.1
## - grass_1 1 1.57 24937 -2607.0
## <none> 24935 -2606.7
## - NE 1 2.12 24937 -2606.4
## - NOR 1 2.27 24938 -2606.2
## - IND 1 2.31 24938 -2606.2
## - NYJ 1 3.17 24939 -2605.2
## - cold_weather 1 3.49 24939 -2604.9
## - CHI 1 3.56 24939 -2604.8
## - avg_fuml_plyr 1 1213.96 26149 -1302.2
##
## Step: AIC=-2608.59
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 +
## ARI + ATL + BAL + BUF + CAR + CHI + CIN + DAL + DET + GB +
## IND + MINN + NE + NOR + NYG + NYJ + PHI + PIT + SEA + TB +
## TEN + WAS + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr +
## avg_qbtdp_plyr + grass_1
##
## Df Sum of Sq RSS AIC
## - TB 1 0.10 24936 -2610.5
## - GB 1 0.10 24936 -2610.5
## - DET 1 0.11 24936 -2610.5
## - MINN 1 0.12 24936 -2610.5
## - SEA 1 0.13 24936 -2610.4
## - forty1 1 0.19 24936 -2610.4
## - ATL 1 0.19 24936 -2610.4
## - WAS 1 0.20 24936 -2610.4
## - PHI 1 0.21 24936 -2610.4
## - NYG 1 0.23 24936 -2610.3
## - avg_rbry_plyr 1 0.25 24936 -2610.3
## - BUF 1 0.26 24936 -2610.3
## - home_team_1 1 0.27 24936 -2610.3
## - DAL 1 0.29 24936 -2610.3
## - vertical1 1 0.40 24936 -2610.2
## - CAR 1 0.40 24936 -2610.2
## - height 1 0.41 24936 -2610.1
## - PIT 1 0.41 24936 -2610.1
## - ARI 1 0.50 24936 -2610.0
## - avg_rbry_pos 1 0.51 24936 -2610.0
## - BAL 1 0.67 24936 -2609.8
## - avg_qbtdp_plyr 1 0.80 24936 -2609.7
## - TEN 1 1.18 24937 -2609.3
## - CIN 1 1.39 24937 -2609.1
## - grass_1 1 1.59 24937 -2608.8
## <none> 24935 -2608.6
## - NE 1 2.05 24938 -2608.3
## - NOR 1 2.20 24938 -2608.2
## - IND 1 2.24 24938 -2608.1
## - NYJ 1 3.09 24939 -2607.2
## - cold_weather 1 3.41 24939 -2606.8
## - CHI 1 3.48 24939 -2606.8
## - avg_fuml_plyr 1 1214.82 26150 -1303.2
##
## Step: AIC=-2610.48
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 +
## ARI + ATL + BAL + BUF + CAR + CHI + CIN + DAL + DET + GB +
## IND + MINN + NE + NOR + NYG + NYJ + PHI + PIT + SEA + TEN +
## WAS + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr +
## grass_1
##
## Df Sum of Sq RSS AIC
## - GB 1 0.09 24936 -2612.4
## - DET 1 0.09 24936 -2612.4
## - MINN 1 0.10 24936 -2612.4
## - SEA 1 0.15 24936 -2612.3
## - ATL 1 0.17 24936 -2612.3
## - WAS 1 0.18 24936 -2612.3
## - forty1 1 0.19 24936 -2612.3
## - PHI 1 0.23 24936 -2612.2
## - BUF 1 0.24 24936 -2612.2
## - avg_rbry_plyr 1 0.25 24936 -2612.2
## - NYG 1 0.26 24936 -2612.2
## - DAL 1 0.26 24936 -2612.2
## - home_team_1 1 0.28 24936 -2612.2
## - CAR 1 0.37 24936 -2612.1
## - PIT 1 0.38 24936 -2612.1
## - vertical1 1 0.39 24936 -2612.1
## - height 1 0.40 24936 -2612.0
## - ARI 1 0.47 24936 -2612.0
## - avg_rbry_pos 1 0.51 24936 -2611.9
## - BAL 1 0.63 24936 -2611.8
## - avg_qbtdp_plyr 1 0.79 24936 -2611.6
## - TEN 1 1.13 24937 -2611.2
## - CIN 1 1.33 24937 -2611.0
## - grass_1 1 1.60 24937 -2610.7
## <none> 24936 -2610.5
## - NE 1 1.99 24938 -2610.3
## - NOR 1 2.14 24938 -2610.1
## - IND 1 2.18 24938 -2610.1
## - NYJ 1 3.01 24939 -2609.2
## - CHI 1 3.40 24939 -2608.7
## - cold_weather 1 3.47 24939 -2608.7
## - avg_fuml_plyr 1 1214.75 26150 -1305.2
##
## Step: AIC=-2612.39
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 +
## ARI + ATL + BAL + BUF + CAR + CHI + CIN + DAL + DET + IND +
## MINN + NE + NOR + NYG + NYJ + PHI + PIT + SEA + TEN + WAS +
## avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr +
## grass_1
##
## Df Sum of Sq RSS AIC
## - DET 1 0.08 24936 -2614.3
## - MINN 1 0.09 24936 -2614.3
## - ATL 1 0.15 24936 -2614.2
## - WAS 1 0.16 24936 -2614.2
## - SEA 1 0.18 24936 -2614.2
## - forty1 1 0.19 24936 -2614.2
## - BUF 1 0.22 24936 -2614.2
## - DAL 1 0.24 24936 -2614.1
## - avg_rbry_plyr 1 0.25 24936 -2614.1
## - PHI 1 0.26 24936 -2614.1
## - NYG 1 0.29 24936 -2614.1
## - home_team_1 1 0.29 24936 -2614.1
## - CAR 1 0.34 24936 -2614.0
## - PIT 1 0.35 24936 -2614.0
## - vertical1 1 0.38 24936 -2614.0
## - height 1 0.41 24936 -2613.9
## - ARI 1 0.44 24936 -2613.9
## - avg_rbry_pos 1 0.52 24936 -2613.8
## - BAL 1 0.59 24936 -2613.7
## - avg_qbtdp_plyr 1 0.82 24936 -2613.5
## - TEN 1 1.09 24937 -2613.2
## - CIN 1 1.28 24937 -2613.0
## - grass_1 1 1.60 24937 -2612.6
## <none> 24936 -2612.4
## - NE 1 1.92 24938 -2612.3
## - NOR 1 2.08 24938 -2612.1
## - IND 1 2.12 24938 -2612.1
## - NYJ 1 2.95 24939 -2611.1
## - CHI 1 3.33 24939 -2610.7
## - cold_weather 1 3.40 24939 -2610.6
## - avg_fuml_plyr 1 1218.18 26154 -1303.5
##
## Step: AIC=-2614.3
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 +
## ARI + ATL + BAL + BUF + CAR + CHI + CIN + DAL + IND + MINN +
## NE + NOR + NYG + NYJ + PHI + PIT + SEA + TEN + WAS + avg_rbry_plyr +
## avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + grass_1
##
## Df Sum of Sq RSS AIC
## - MINN 1 0.08 24936 -2616.2
## - ATL 1 0.13 24936 -2616.2
## - WAS 1 0.14 24936 -2616.2
## - forty1 1 0.19 24936 -2616.1
## - BUF 1 0.19 24936 -2616.1
## - SEA 1 0.20 24936 -2616.1
## - DAL 1 0.22 24936 -2616.1
## - avg_rbry_plyr 1 0.25 24936 -2616.0
## - home_team_1 1 0.27 24936 -2616.0
## - PHI 1 0.28 24936 -2616.0
## - NYG 1 0.32 24936 -2615.9
## - CAR 1 0.32 24936 -2615.9
## - PIT 1 0.33 24936 -2615.9
## - vertical1 1 0.39 24936 -2615.9
## - height 1 0.41 24936 -2615.8
## - ARI 1 0.41 24936 -2615.8
## - avg_rbry_pos 1 0.51 24936 -2615.7
## - BAL 1 0.56 24936 -2615.7
## - avg_qbtdp_plyr 1 0.82 24937 -2615.4
## - TEN 1 1.05 24937 -2615.1
## - CIN 1 1.24 24937 -2614.9
## - grass_1 1 1.54 24937 -2614.6
## <none> 24936 -2614.3
## - NE 1 1.87 24938 -2614.2
## - NOR 1 2.02 24938 -2614.1
## - IND 1 2.06 24938 -2614.0
## - NYJ 1 2.89 24939 -2613.1
## - CHI 1 3.28 24939 -2612.7
## - cold_weather 1 3.44 24939 -2612.5
## - avg_fuml_plyr 1 1218.29 26154 -1305.3
##
## Step: AIC=-2616.22
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 +
## ARI + ATL + BAL + BUF + CAR + CHI + CIN + DAL + IND + NE +
## NOR + NYG + NYJ + PHI + PIT + SEA + TEN + WAS + avg_rbry_plyr +
## avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + grass_1
##
## Df Sum of Sq RSS AIC
## - ATL 1 0.12 24936 -2618.1
## - WAS 1 0.13 24936 -2618.1
## - BUF 1 0.18 24936 -2618.0
## - forty1 1 0.19 24936 -2618.0
## - DAL 1 0.20 24936 -2618.0
## - SEA 1 0.23 24936 -2618.0
## - avg_rbry_plyr 1 0.26 24936 -2617.9
## - home_team_1 1 0.28 24936 -2617.9
## - CAR 1 0.30 24936 -2617.9
## - PHI 1 0.30 24936 -2617.9
## - PIT 1 0.31 24936 -2617.9
## - NYG 1 0.35 24936 -2617.8
## - ARI 1 0.38 24936 -2617.8
## - height 1 0.40 24936 -2617.8
## - vertical1 1 0.40 24936 -2617.8
## - avg_rbry_pos 1 0.51 24936 -2617.7
## - BAL 1 0.53 24936 -2617.6
## - avg_qbtdp_plyr 1 0.82 24937 -2617.3
## - TEN 1 1.02 24937 -2617.1
## - CIN 1 1.19 24937 -2616.9
## - grass_1 1 1.48 24937 -2616.6
## <none> 24936 -2616.2
## - NE 1 1.82 24938 -2616.2
## - NOR 1 1.96 24938 -2616.1
## - IND 1 2.01 24938 -2616.0
## - NYJ 1 2.83 24939 -2615.1
## - CHI 1 3.23 24939 -2614.7
## - cold_weather 1 3.42 24939 -2614.4
## - avg_fuml_plyr 1 1218.34 26154 -1307.1
##
## Step: AIC=-2618.09
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 +
## ARI + BAL + BUF + CAR + CHI + CIN + DAL + IND + NE + NOR +
## NYG + NYJ + PHI + PIT + SEA + TEN + WAS + avg_rbry_plyr +
## avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + grass_1
##
## Df Sum of Sq RSS AIC
## - WAS 1 0.12 24936 -2620.0
## - BUF 1 0.16 24936 -2619.9
## - DAL 1 0.17 24936 -2619.9
## - forty1 1 0.19 24936 -2619.9
## - home_team_1 1 0.24 24936 -2619.8
## - SEA 1 0.25 24936 -2619.8
## - avg_rbry_plyr 1 0.26 24936 -2619.8
## - CAR 1 0.28 24936 -2619.8
## - PIT 1 0.29 24936 -2619.8
## - PHI 1 0.32 24936 -2619.7
## - ARI 1 0.35 24936 -2619.7
## - NYG 1 0.38 24936 -2619.7
## - vertical1 1 0.38 24936 -2619.7
## - height 1 0.42 24936 -2619.6
## - BAL 1 0.49 24936 -2619.5
## - avg_rbry_pos 1 0.52 24936 -2619.5
## - avg_qbtdp_plyr 1 0.84 24937 -2619.2
## - TEN 1 0.99 24937 -2619.0
## - CIN 1 1.15 24937 -2618.8
## - grass_1 1 1.41 24937 -2618.5
## - NE 1 1.75 24938 -2618.2
## <none> 24936 -2618.1
## - NOR 1 1.89 24938 -2618.0
## - IND 1 1.94 24938 -2617.9
## - NYJ 1 2.76 24939 -2617.1
## - CHI 1 3.18 24939 -2616.6
## - cold_weather 1 3.49 24939 -2616.2
## - avg_fuml_plyr 1 1222.16 26158 -1305.0
##
## Step: AIC=-2619.96
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 +
## ARI + BAL + BUF + CAR + CHI + CIN + DAL + IND + NE + NOR +
## NYG + NYJ + PHI + PIT + SEA + TEN + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + grass_1
##
## Df Sum of Sq RSS AIC
## - BUF 1 0.14 24936 -2621.8
## - DAL 1 0.16 24936 -2621.8
## - forty1 1 0.18 24936 -2621.8
## - avg_rbry_plyr 1 0.25 24936 -2621.7
## - home_team_1 1 0.25 24936 -2621.7
## - CAR 1 0.26 24936 -2621.7
## - PIT 1 0.27 24936 -2621.7
## - SEA 1 0.28 24936 -2621.7
## - ARI 1 0.33 24936 -2621.6
## - PHI 1 0.35 24936 -2621.6
## - vertical1 1 0.38 24936 -2621.5
## - NYG 1 0.40 24936 -2621.5
## - height 1 0.44 24936 -2621.5
## - BAL 1 0.47 24937 -2621.4
## - avg_rbry_pos 1 0.53 24937 -2621.4
## - avg_qbtdp_plyr 1 0.85 24937 -2621.0
## - TEN 1 0.94 24937 -2620.9
## - CIN 1 1.11 24937 -2620.7
## - grass_1 1 1.44 24937 -2620.4
## - NE 1 1.71 24938 -2620.1
## <none> 24936 -2620.0
## - NOR 1 1.84 24938 -2619.9
## - IND 1 1.89 24938 -2619.9
## - NYJ 1 2.70 24939 -2619.0
## - CHI 1 3.11 24939 -2618.5
## - cold_weather 1 3.47 24940 -2618.1
## - avg_fuml_plyr 1 1222.52 26159 -1306.5
##
## Step: AIC=-2621.81
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 +
## ARI + BAL + CAR + CHI + CIN + DAL + IND + NE + NOR + NYG +
## NYJ + PHI + PIT + SEA + TEN + avg_rbry_plyr + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + grass_1
##
## Df Sum of Sq RSS AIC
## - DAL 1 0.14 24936 -2623.7
## - forty1 1 0.16 24936 -2623.6
## - CAR 1 0.24 24936 -2623.5
## - PIT 1 0.25 24936 -2623.5
## - avg_rbry_plyr 1 0.25 24936 -2623.5
## - home_team_1 1 0.27 24936 -2623.5
## - ARI 1 0.30 24936 -2623.5
## - SEA 1 0.31 24937 -2623.5
## - vertical1 1 0.36 24937 -2623.4
## - PHI 1 0.38 24937 -2623.4
## - height 1 0.42 24937 -2623.3
## - BAL 1 0.43 24937 -2623.3
## - NYG 1 0.45 24937 -2623.3
## - avg_rbry_pos 1 0.52 24937 -2623.2
## - avg_qbtdp_plyr 1 0.84 24937 -2622.9
## - TEN 1 0.91 24937 -2622.8
## - CIN 1 1.05 24937 -2622.7
## - grass_1 1 1.35 24938 -2622.3
## - NE 1 1.64 24938 -2622.0
## - NOR 1 1.78 24938 -2621.8
## <none> 24936 -2621.8
## - IND 1 1.83 24938 -2621.8
## - NYJ 1 2.62 24939 -2620.9
## - CHI 1 3.04 24939 -2620.4
## - cold_weather 1 3.40 24940 -2620.1
## - avg_fuml_plyr 1 1222.44 26159 -1308.5
##
## Step: AIC=-2623.65
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 +
## ARI + BAL + CAR + CHI + CIN + IND + NE + NOR + NYG + NYJ +
## PHI + PIT + SEA + TEN + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr +
## avg_qbtdp_plyr + grass_1
##
## Df Sum of Sq RSS AIC
## - forty1 1 0.16 24936 -2625.5
## - CAR 1 0.22 24937 -2625.4
## - PIT 1 0.23 24937 -2625.4
## - home_team_1 1 0.24 24937 -2625.4
## - avg_rbry_plyr 1 0.26 24937 -2625.4
## - ARI 1 0.27 24937 -2625.4
## - SEA 1 0.34 24937 -2625.3
## - vertical1 1 0.36 24937 -2625.3
## - PHI 1 0.40 24937 -2625.2
## - BAL 1 0.41 24937 -2625.2
## - height 1 0.42 24937 -2625.2
## - NYG 1 0.48 24937 -2625.1
## - avg_rbry_pos 1 0.53 24937 -2625.1
## - avg_qbtdp_plyr 1 0.85 24937 -2624.7
## - TEN 1 0.88 24937 -2624.7
## - CIN 1 1.01 24937 -2624.5
## - grass_1 1 1.28 24938 -2624.2
## - NE 1 1.59 24938 -2623.9
## - NOR 1 1.72 24938 -2623.8
## - IND 1 1.76 24938 -2623.7
## <none> 24936 -2623.7
## - NYJ 1 2.56 24939 -2622.8
## - CHI 1 2.99 24939 -2622.3
## - cold_weather 1 3.43 24940 -2621.9
## - avg_fuml_plyr 1 1222.72 26159 -1310.0
##
## Step: AIC=-2625.48
## fuml ~ height + cold_weather + home_team_1 + vertical1 + ARI +
## BAL + CAR + CHI + CIN + IND + NE + NOR + NYG + NYJ + PHI +
## PIT + SEA + TEN + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr +
## avg_qbtdp_plyr + grass_1
##
## Df Sum of Sq RSS AIC
## - avg_rbry_plyr 1 0.20 24937 -2627.3
## - vertical1 1 0.21 24937 -2627.2
## - CAR 1 0.22 24937 -2627.2
## - PIT 1 0.23 24937 -2627.2
## - home_team_1 1 0.23 24937 -2627.2
## - ARI 1 0.25 24937 -2627.2
## - height 1 0.28 24937 -2627.2
## - SEA 1 0.35 24937 -2627.1
## - BAL 1 0.41 24937 -2627.0
## - PHI 1 0.41 24937 -2627.0
## - avg_rbry_pos 1 0.44 24937 -2627.0
## - NYG 1 0.47 24937 -2627.0
## - TEN 1 0.88 24937 -2626.5
## - CIN 1 1.01 24937 -2626.4
## - avg_qbtdp_plyr 1 1.10 24938 -2626.3
## - grass_1 1 1.27 24938 -2626.1
## - NOR 1 1.69 24938 -2625.6
## - NE 1 1.70 24938 -2625.6
## - IND 1 1.77 24938 -2625.5
## <none> 24936 -2625.5
## - NYJ 1 2.60 24939 -2624.6
## - CHI 1 2.95 24939 -2624.2
## - cold_weather 1 3.42 24940 -2623.7
## - avg_fuml_plyr 1 1225.11 26162 -1309.3
##
## Step: AIC=-2627.26
## fuml ~ height + cold_weather + home_team_1 + vertical1 + ARI +
## BAL + CAR + CHI + CIN + IND + NE + NOR + NYG + NYJ + PHI +
## PIT + SEA + TEN + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr +
## grass_1
##
## Df Sum of Sq RSS AIC
## - vertical1 1 0.23 24937 -2629.0
## - CAR 1 0.23 24937 -2629.0
## - home_team_1 1 0.23 24937 -2629.0
## - PIT 1 0.23 24937 -2629.0
## - avg_rbry_pos 1 0.24 24937 -2629.0
## - ARI 1 0.24 24937 -2629.0
## - height 1 0.28 24937 -2628.9
## - SEA 1 0.33 24937 -2628.9
## - PHI 1 0.40 24937 -2628.8
## - BAL 1 0.40 24937 -2628.8
## - NYG 1 0.48 24937 -2628.7
## - TEN 1 0.88 24938 -2628.3
## - avg_qbtdp_plyr 1 0.96 24938 -2628.2
## - CIN 1 1.03 24938 -2628.1
## - grass_1 1 1.27 24938 -2627.9
## - NOR 1 1.67 24938 -2627.4
## - NE 1 1.73 24938 -2627.3
## - IND 1 1.77 24938 -2627.3
## <none> 24937 -2627.3
## - NYJ 1 2.62 24939 -2626.4
## - CHI 1 2.97 24940 -2626.0
## - cold_weather 1 3.42 24940 -2625.5
## - avg_fuml_plyr 1 1371.11 26308 -1158.2
##
## Step: AIC=-2629.01
## fuml ~ height + cold_weather + home_team_1 + ARI + BAL + CAR +
## CHI + CIN + IND + NE + NOR + NYG + NYJ + PHI + PIT + SEA +
## TEN + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + grass_1
##
## Df Sum of Sq RSS AIC
## - PIT 1 0.23 24937 -2630.8
## - home_team_1 1 0.24 24937 -2630.7
## - ARI 1 0.24 24937 -2630.7
## - CAR 1 0.24 24937 -2630.7
## - SEA 1 0.31 24937 -2630.7
## - avg_rbry_pos 1 0.33 24937 -2630.7
## - height 1 0.38 24937 -2630.6
## - BAL 1 0.40 24937 -2630.6
## - PHI 1 0.41 24937 -2630.6
## - NYG 1 0.49 24937 -2630.5
## - avg_qbtdp_plyr 1 0.79 24938 -2630.1
## - TEN 1 0.89 24938 -2630.0
## - CIN 1 1.01 24938 -2629.9
## - grass_1 1 1.28 24938 -2629.6
## - NE 1 1.66 24939 -2629.2
## - NOR 1 1.71 24939 -2629.1
## <none> 24937 -2629.0
## - IND 1 1.82 24939 -2629.0
## - NYJ 1 2.71 24940 -2628.0
## - CHI 1 2.94 24940 -2627.8
## - cold_weather 1 3.41 24940 -2627.2
## - avg_fuml_plyr 1 1370.93 26308 -1160.1
##
## Step: AIC=-2630.75
## fuml ~ height + cold_weather + home_team_1 + ARI + BAL + CAR +
## CHI + CIN + IND + NE + NOR + NYG + NYJ + PHI + SEA + TEN +
## avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + grass_1
##
## Df Sum of Sq RSS AIC
## - CAR 1 0.22 24937 -2632.5
## - ARI 1 0.22 24937 -2632.5
## - home_team_1 1 0.25 24937 -2632.5
## - avg_rbry_pos 1 0.33 24937 -2632.4
## - SEA 1 0.34 24937 -2632.4
## - BAL 1 0.37 24938 -2632.3
## - height 1 0.38 24938 -2632.3
## - PHI 1 0.45 24938 -2632.2
## - NYG 1 0.53 24938 -2632.2
## - avg_qbtdp_plyr 1 0.79 24938 -2631.9
## - TEN 1 0.84 24938 -2631.8
## - CIN 1 0.97 24938 -2631.7
## - grass_1 1 1.35 24938 -2631.3
## - NE 1 1.59 24939 -2631.0
## - NOR 1 1.66 24939 -2630.9
## - IND 1 1.77 24939 -2630.8
## <none> 24937 -2630.8
## - NYJ 1 2.63 24940 -2629.8
## - CHI 1 2.85 24940 -2629.6
## - cold_weather 1 3.27 24940 -2629.1
## - avg_fuml_plyr 1 1370.76 26308 -1162.0
##
## Step: AIC=-2632.51
## fuml ~ height + cold_weather + home_team_1 + ARI + BAL + CHI +
## CIN + IND + NE + NOR + NYG + NYJ + PHI + SEA + TEN + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + grass_1
##
## Df Sum of Sq RSS AIC
## - ARI 1 0.20 24938 -2634.3
## - home_team_1 1 0.27 24938 -2634.2
## - avg_rbry_pos 1 0.33 24938 -2634.1
## - BAL 1 0.34 24938 -2634.1
## - SEA 1 0.37 24938 -2634.1
## - height 1 0.38 24938 -2634.1
## - PHI 1 0.49 24938 -2634.0
## - NYG 1 0.56 24938 -2633.9
## - avg_qbtdp_plyr 1 0.78 24938 -2633.7
## - TEN 1 0.80 24938 -2633.6
## - CIN 1 0.93 24938 -2633.5
## - grass_1 1 1.40 24939 -2633.0
## - NE 1 1.54 24939 -2632.8
## - NOR 1 1.61 24939 -2632.7
## - IND 1 1.72 24939 -2632.6
## <none> 24937 -2632.5
## - NYJ 1 2.57 24940 -2631.7
## - CHI 1 2.78 24940 -2631.4
## - cold_weather 1 3.29 24941 -2630.9
## - avg_fuml_plyr 1 1370.61 26308 -1164.0
##
## Step: AIC=-2634.28
## fuml ~ height + cold_weather + home_team_1 + BAL + CHI + CIN +
## IND + NE + NOR + NYG + NYJ + PHI + SEA + TEN + avg_rbry_pos +
## avg_fuml_plyr + avg_qbtdp_plyr + grass_1
##
## Df Sum of Sq RSS AIC
## - home_team_1 1 0.22 24938 -2636.0
## - BAL 1 0.32 24938 -2635.9
## - avg_rbry_pos 1 0.33 24938 -2635.9
## - height 1 0.37 24938 -2635.9
## - SEA 1 0.40 24938 -2635.8
## - PHI 1 0.51 24938 -2635.7
## - NYG 1 0.60 24938 -2635.6
## - avg_qbtdp_plyr 1 0.77 24938 -2635.4
## - TEN 1 0.77 24938 -2635.4
## - CIN 1 0.88 24938 -2635.3
## - grass_1 1 1.32 24939 -2634.8
## - NE 1 1.49 24939 -2634.6
## - NOR 1 1.54 24939 -2634.6
## - IND 1 1.65 24939 -2634.5
## <none> 24938 -2634.3
## - NYJ 1 2.50 24940 -2633.5
## - CHI 1 2.72 24940 -2633.3
## - cold_weather 1 3.30 24941 -2632.7
## - avg_fuml_plyr 1 1370.41 26308 -1166.0
##
## Step: AIC=-2636.04
## fuml ~ height + cold_weather + BAL + CHI + CIN + IND + NE + NOR +
## NYG + NYJ + PHI + SEA + TEN + avg_rbry_pos + avg_fuml_plyr +
## avg_qbtdp_plyr + grass_1
##
## Df Sum of Sq RSS AIC
## - avg_rbry_pos 1 0.34 24938 -2637.7
## - BAL 1 0.35 24938 -2637.7
## - SEA 1 0.36 24938 -2637.6
## - height 1 0.37 24938 -2637.6
## - PHI 1 0.49 24938 -2637.5
## - NYG 1 0.56 24938 -2637.4
## - avg_qbtdp_plyr 1 0.76 24939 -2637.2
## - TEN 1 0.80 24939 -2637.2
## - CIN 1 0.94 24939 -2637.0
## - NOR 1 1.51 24939 -2636.4
## - IND 1 1.58 24939 -2636.3
## - NE 1 1.59 24939 -2636.3
## - grass_1 1 1.67 24939 -2636.2
## <none> 24938 -2636.0
## - NYJ 1 2.60 24940 -2635.2
## - CHI 1 2.76 24941 -2635.0
## - cold_weather 1 3.17 24941 -2634.6
## - avg_fuml_plyr 1 1370.19 26308 -1168.0
##
## Step: AIC=-2637.67
## fuml ~ height + cold_weather + BAL + CHI + CIN + IND + NE + NOR +
## NYG + NYJ + PHI + SEA + TEN + avg_fuml_plyr + avg_qbtdp_plyr +
## grass_1
##
## Df Sum of Sq RSS AIC
## - height 1 0.15 24938 -2639.5
## - BAL 1 0.34 24938 -2639.3
## - SEA 1 0.35 24938 -2639.3
## - PHI 1 0.47 24939 -2639.2
## - NYG 1 0.57 24939 -2639.0
## - avg_qbtdp_plyr 1 0.81 24939 -2638.8
## - TEN 1 0.82 24939 -2638.8
## - CIN 1 0.95 24939 -2638.6
## - NOR 1 1.48 24940 -2638.0
## - NE 1 1.58 24940 -2637.9
## - IND 1 1.63 24940 -2637.9
## - grass_1 1 1.68 24940 -2637.8
## <none> 24938 -2637.7
## - NYJ 1 2.63 24941 -2636.8
## - CHI 1 2.78 24941 -2636.6
## - cold_weather 1 3.17 24941 -2636.2
## - avg_fuml_plyr 1 1465.76 26404 -1070.0
##
## Step: AIC=-2639.5
## fuml ~ cold_weather + BAL + CHI + CIN + IND + NE + NOR + NYG +
## NYJ + PHI + SEA + TEN + avg_fuml_plyr + avg_qbtdp_plyr +
## grass_1
##
## Df Sum of Sq RSS AIC
## - BAL 1 0.33 24939 -2641.1
## - SEA 1 0.33 24939 -2641.1
## - PHI 1 0.46 24939 -2641.0
## - NYG 1 0.58 24939 -2640.9
## - avg_qbtdp_plyr 1 0.67 24939 -2640.8
## - TEN 1 0.82 24939 -2640.6
## - CIN 1 0.95 24939 -2640.4
## - NOR 1 1.52 24940 -2639.8
## - NE 1 1.64 24940 -2639.7
## - IND 1 1.66 24940 -2639.7
## - grass_1 1 1.69 24940 -2639.6
## <none> 24938 -2639.5
## - NYJ 1 2.63 24941 -2638.6
## - CHI 1 2.74 24941 -2638.5
## - cold_weather 1 3.16 24941 -2638.0
## - avg_fuml_plyr 1 1506.14 26444 -1029.8
##
## Step: AIC=-2641.14
## fuml ~ cold_weather + CHI + CIN + IND + NE + NOR + NYG + NYJ +
## PHI + SEA + TEN + avg_fuml_plyr + avg_qbtdp_plyr + grass_1
##
## Df Sum of Sq RSS AIC
## - SEA 1 0.38 24939 -2642.7
## - PHI 1 0.50 24939 -2642.6
## - NYG 1 0.63 24939 -2642.4
## - avg_qbtdp_plyr 1 0.70 24939 -2642.4
## - TEN 1 0.78 24939 -2642.3
## - CIN 1 0.89 24940 -2642.2
## - NOR 1 1.44 24940 -2641.6
## - NE 1 1.55 24940 -2641.4
## - IND 1 1.58 24940 -2641.4
## - grass_1 1 1.60 24940 -2641.4
## <none> 24939 -2641.1
## - NYJ 1 2.54 24941 -2640.3
## - CHI 1 2.66 24941 -2640.2
## - cold_weather 1 3.04 24942 -2639.8
## - avg_fuml_plyr 1 1508.77 26447 -1028.7
##
## Step: AIC=-2642.72
## fuml ~ cold_weather + CHI + CIN + IND + NE + NOR + NYG + NYJ +
## PHI + TEN + avg_fuml_plyr + avg_qbtdp_plyr + grass_1
##
## Df Sum of Sq RSS AIC
## - PHI 1 0.47 24939 -2644.2
## - NYG 1 0.58 24940 -2644.1
## - avg_qbtdp_plyr 1 0.68 24940 -2644.0
## - TEN 1 0.82 24940 -2643.8
## - CIN 1 0.97 24940 -2643.7
## - NOR 1 1.54 24941 -2643.0
## - NE 1 1.67 24941 -2642.9
## - IND 1 1.68 24941 -2642.9
## <none> 24939 -2642.7
## - grass_1 1 1.82 24941 -2642.7
## - NYJ 1 2.66 24942 -2641.8
## - CHI 1 2.74 24942 -2641.7
## - cold_weather 1 3.21 24942 -2641.2
## - avg_fuml_plyr 1 1508.81 26448 -1030.3
##
## Step: AIC=-2644.21
## fuml ~ cold_weather + CHI + CIN + IND + NE + NOR + NYG + NYJ +
## TEN + avg_fuml_plyr + avg_qbtdp_plyr + grass_1
##
## Df Sum of Sq RSS AIC
## - NYG 1 0.54 24940 -2645.6
## - avg_qbtdp_plyr 1 0.71 24940 -2645.4
## - TEN 1 0.88 24940 -2645.2
## - CIN 1 1.02 24940 -2645.1
## - NOR 1 1.60 24941 -2644.4
## - NE 1 1.73 24941 -2644.3
## - grass_1 1 1.73 24941 -2644.3
## - IND 1 1.74 24941 -2644.3
## <none> 24939 -2644.2
## - NYJ 1 2.75 24942 -2643.2
## - CHI 1 2.85 24942 -2643.1
## - cold_weather 1 3.26 24943 -2642.6
## - avg_fuml_plyr 1 1515.63 26455 -1024.7
##
## Step: AIC=-2645.61
## fuml ~ cold_weather + CHI + CIN + IND + NE + NOR + NYJ + TEN +
## avg_fuml_plyr + avg_qbtdp_plyr + grass_1
##
## Df Sum of Sq RSS AIC
## - avg_qbtdp_plyr 1 0.70 24941 -2646.8
## - TEN 1 0.92 24941 -2646.6
## - CIN 1 1.10 24941 -2646.4
## - NOR 1 1.70 24942 -2645.7
## <none> 24940 -2645.6
## - IND 1 1.85 24942 -2645.6
## - NE 1 1.85 24942 -2645.6
## - grass_1 1 1.96 24942 -2645.4
## - NYJ 1 2.89 24943 -2644.4
## - CHI 1 2.94 24943 -2644.4
## - cold_weather 1 3.42 24943 -2643.8
## - avg_fuml_plyr 1 1515.79 26456 -1026.0
##
## Step: AIC=-2646.83
## fuml ~ cold_weather + CHI + CIN + IND + NE + NOR + NYJ + TEN +
## avg_fuml_plyr + grass_1
##
## Df Sum of Sq RSS AIC
## - TEN 1 0.89 24942 -2647.85
## - CIN 1 1.11 24942 -2647.61
## - NOR 1 1.81 24943 -2646.84
## <none> 24941 -2646.83
## - IND 1 1.88 24943 -2646.76
## - grass_1 1 1.95 24943 -2646.69
## - NE 1 2.02 24943 -2646.61
## - NYJ 1 2.81 24944 -2645.74
## - CHI 1 2.88 24944 -2645.66
## - cold_weather 1 3.41 24944 -2645.08
## - avg_fuml_plyr 1 2528.17 27469 4.81
##
## Step: AIC=-2647.85
## fuml ~ cold_weather + CHI + CIN + IND + NE + NOR + NYJ + avg_fuml_plyr +
## grass_1
##
## Df Sum of Sq RSS AIC
## - CIN 1 1.06 24943 -2648.68
## - NOR 1 1.72 24943 -2647.95
## - IND 1 1.81 24943 -2647.86
## <none> 24942 -2647.85
## - NE 1 1.94 24944 -2647.71
## - grass_1 1 2.16 24944 -2647.46
## - NYJ 1 2.71 24944 -2646.86
## - CHI 1 2.75 24944 -2646.81
## - cold_weather 1 3.49 24945 -2646.00
## - avg_fuml_plyr 1 2527.57 27469 3.11
##
## Step: AIC=-2648.68
## fuml ~ cold_weather + CHI + IND + NE + NOR + NYJ + avg_fuml_plyr +
## grass_1
##
## Df Sum of Sq RSS AIC
## - NOR 1 1.61 24944 -2648.92
## - IND 1 1.69 24944 -2648.83
## - NE 1 1.80 24944 -2648.70
## <none> 24943 -2648.68
## - grass_1 1 1.89 24945 -2648.60
## - NYJ 1 2.56 24945 -2647.86
## - CHI 1 2.65 24945 -2647.76
## - cold_weather 1 3.30 24946 -2647.05
## - avg_fuml_plyr 1 2527.03 27470 1.63
##
## Step: AIC=-2648.92
## fuml ~ cold_weather + CHI + IND + NE + NYJ + avg_fuml_plyr +
## grass_1
##
## Df Sum of Sq RSS AIC
## - IND 1 1.54 24946 -2649.22
## - grass_1 1 1.58 24946 -2649.17
## - NE 1 1.65 24946 -2649.10
## <none> 24944 -2648.92
## - NYJ 1 2.38 24947 -2648.29
## - CHI 1 2.54 24947 -2648.12
## - cold_weather 1 3.51 24948 -2647.05
## - avg_fuml_plyr 1 2528.54 27473 2.74
##
## Step: AIC=-2649.22
## fuml ~ cold_weather + CHI + NE + NYJ + avg_fuml_plyr + grass_1
##
## Df Sum of Sq RSS AIC
## - grass_1 1 1.31 24947 -2649.78
## - NE 1 1.52 24947 -2649.55
## <none> 24946 -2649.22
## - NYJ 1 2.23 24948 -2648.77
## - CHI 1 2.44 24948 -2648.54
## - cold_weather 1 3.56 24949 -2647.30
## - avg_fuml_plyr 1 2527.83 27474 1.57
##
## Step: AIC=-2649.78
## fuml ~ cold_weather + CHI + NE + NYJ + avg_fuml_plyr
##
## Df Sum of Sq RSS AIC
## - NE 1 1.25 24948 -2650.40
## <none> 24947 -2649.78
## - NYJ 1 1.94 24949 -2649.64
## - CHI 1 2.69 24950 -2648.81
## - cold_weather 1 3.26 24950 -2648.18
## - avg_fuml_plyr 1 2526.94 27474 -0.01
##
## Step: AIC=-2650.4
## fuml ~ cold_weather + CHI + NYJ + avg_fuml_plyr
##
## Df Sum of Sq RSS AIC
## <none> 24948 -2650.40
## - NYJ 1 1.84 24950 -2650.38
## - CHI 1 2.57 24951 -2649.57
## - cold_weather 1 2.99 24951 -2649.10
## - avg_fuml_plyr 1 2532.79 27481 5.09
summary(aic_fuml)
##
## Call:
## lm(formula = fuml ~ cold_weather + CHI + NYJ + avg_fuml_plyr,
## data = trainTransformedfuml)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.2543 -0.2691 -0.1107 0.0033 16.0229
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.462e-16 5.748e-03 0.000 1.0000
## cold_weather 1.045e-02 5.753e-03 1.816 0.0694 .
## CHI -9.681e-03 5.757e-03 -1.682 0.0926 .
## NYJ -8.184e-03 5.754e-03 -1.422 0.1550
## avg_fuml_plyr 3.038e-01 5.752e-03 52.818 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9528 on 27479 degrees of freedom
## Multiple R-squared: 0.09223, Adjusted R-squared: 0.0921
## F-statistic: 698 on 4 and 27479 DF, p-value: < 2.2e-16
RandomForest:
forest_fuml <- randomForest(fumlregform, data = trainTransformedfuml,
importance = TRUE, ntree = 500)
## Warning in randomForest.default(m, y, ...): The response has five or fewer
## unique values. Are you sure you want to do regression?
plot(forest_fuml)
varImpPlot(forest_fuml)
## Conclusions
Rushing and passing data seems to be something that linear regression has better predictions for that receiving. This makes sense. RB’s and QB’s are generally singular players on the field. Both are heavily invested in by teams and are given a lot of touches every game. Receiving is a little more spread out. There are generally at minimum, 3 players in a receiving capacity (excluding the RB), 2 WR and a TE. There can be up to 4 WR on the field, so trying to predict who gets the ball will be harder because it is more uncertain.
RB’s are negatively effected by age, the data supports this well known fact, I was glad to see that relationship.
Fumbles and INTs are also going to be hard to predict because they are generally random, but highly dependent upon the player carrying the ball and the defense they are playing against.
The data seems to have some skewness, so I may have to explore other options for predicting.
Going forward, I would like to explore more fields, I have completely ignored the opponents in this analysis, and would like to add them in for the future.
As mentioned above, baseball will be better for predicting because of the nature of the game: One batter vs one pitcher. I would like to build an analysis for baseball based on a similar method as I have used for this.
WR targets by avg yards per player
ggplot(data = nfl_data, aes(x = avg_recy_plyr, y = avg_trg_plyr, col = Teams ))+
geom_point()+
geom_text(data = subset(nfl_data, avg_recy_plyr > 75), aes(label = pname), size = 2.5)
There are few anomalies in this graph, not surprising, the amount of targets correlates with the amount of yards a player gets. The top right corner is “ALL PRO” corner.
**Tight ends should not be compared to WR
ggplot(data = nfl_data, aes(x = avg_recy_plyr, y = avg_trg_plyr, col = Teams ))+
geom_point(data = subset(nfl_data, pos1 == "TE"))+
geom_text(data = subset(nfl_data, avg_recy_plyr > 50 & pos1 == "TE"), aes(label = pname), size = 2.5)
I separated out the TE from the WR. TE are not “homerun” hitters, but are frequent targets of QB’s. Rob Gronkowski is the biggest anomaly here, he is widely considered the best position player to ever play.
** RB’s separated out
ggplot(data = nfl_data, aes(x = avg_recy_plyr, y = avg_trg_plyr, col = Teams ))+
geom_point(data = subset(nfl_data, pos1 == "RB"))+
geom_text(data = subset(nfl_data, avg_recy_plyr > 30 & pos1 == "RB"), aes(label = pname), size = 2.5)
CJ prosise was a rookie who had a couple of explosive games. He is a RB who played WR in college. He switched to RB his senior year of college and became an elite RB. This trend will regress somewhat, however, he is a very legit dual threat.
**WR only
ggplot(data = nfl_data, aes(x = avg_recy_plyr, y = avg_trg_plyr, col = Teams ))+
geom_point(data = subset(nfl_data, pos1 == "WR"))+
geom_text(data = subset(nfl_data, avg_recy_plyr > 70 & pos1 == "WR"), aes(label = pname), size = 2.5)